Posts Tagged ‘server’
Sunday, January 10th, 2010
As promised, Dycapo 0.0.2 is out.
Dycapo will be an open client (mobile)/server system that will improve travel experiences of users in a city. The system will let people to define a destination on their mobile phone. DyCaPo will suggest and arrange trips by either using the Public Transport Service or Carpooling volunteers.
That is, DyCaPo will implement full Dynamic Carpooling functionalities as well as static approaches.
More information and download on the official page.
Here are the release notes and the changes since 0.0.1:
RELEASE NOTES
***************
2010-01-10 Daniel Graziotin
Dycapo 0.0.2 is just for _showing_out_some_functionalities_ of the system and testing the underlying technologies. Dycapo 0.0.2 incorporates and shows:
* OpenTrip Core adoption and OpenTrip Dynamic data structures proposal (in Django Model format)
* Use of XML-RPC with Django (rpc4django over HTTP and HTTPS)
* (Sort of) integration of Dycapo models with Django and rpc4django
* Authentication
* Insertion of a trip by a driver
* Start of a trip by a driver
* Search of a trip by a rider
* Send a ride request to a driver
* Let the driver accept the ride request
No one exported XML-RPC function will surely be included in the final API! No one exported XML-RPC function is either optimized or completely working!
Code is (somewhat) documented. Expect a completely better work for 0.1.0
CHANGES SINCE 0.0.1
***************
Some refactoring to make the code cleaner.
Lots of bugs fixed.
Test suite rewritten and (finally) fully working.
models.py:
- added utility methods (i.e. __unicode__ and to_xmlrpc)
- use of OpenTrip id proposal instead of Django id
- addition of fields to Participation model, regarding a ride request and a request accepted
trip.py:
this module has been splitted in four files:
- driver.py - holds all the XML-RPC methods that a Driver needs.
- rider.py - holds all the XML-RPC methods that a Rider needs.
- commin.py - will hold all the XML-RPC methods shared by Rider and Driver
- utils.py - holds some utility functions.
driver.py (formerly trip.py):
- added check_ride_requests(trip) - checks for ride requests
- added accept_ride_request(trip, person) - for accepting a Rider
rider.py (formerly trip.py):
- added request_ride(trip) - sends a ride request to a trip
tests/:
- Cleaner code and better organization
- Added test_all_simple.py - creates a Driver and a Rider with the same destination as target
- test_all.py - creates 3 drivers and 5 riders with random locations as target
Tags: 2010, api, bugs, change, Client, code, daniel, data structures, django, document, Download, driver, DyCaPo, dynamic, dynamic carpooling, dynamic ridesharing, FBK, fix, free software, Free*, gmail, graziotin, how, HTTP, HTTPS, models, OpenTrip, page, pro, promise, protocol, prototype, release, research, Serv, server, SoNet, Wiki, xml-rpc
Posted in Carpooling Research | 1 Comment »
Saturday, December 26th, 2009
I would say that Dycapo-0.0.1 is done and out (there is a PRE-0.0.1 tag on GitHub already). I'm just looking for a server to test it, then I will push it out.
Tags: document, DyCaPo, dynamic carpooling, dynamic ridesharing, FBK, free software, HTTP, Serv, server, SoNet
Posted in Carpooling Research | No Comments »
Tuesday, December 22nd, 2009
Road to 0.0.1 for Dycapo. Today I succesfully wrote a first xml-rpc method accepting OpenTrip Core objects, that inserts a trip chosen by the driver.
def add_trip(trip, mode, source, destination)
Actually, the driver is automatically retrieved by the system, since we are waiting rpc4django 0.1.6 to come out and access User from requests. Moreover, only a source and a destination Locations can be specified.
But it works. It works fine.
The method is located at: server/trip.py
I also wrote a tiny python client to test the remote call, located at: tests.
In a couple of days I should try to publish Dycapo 0.0.1. That's what I hope
Tags: Client, django, driver, DyCaPo, dynamic carpooling, FBK, HTTP, OpenTrip, python, Serv, server, SoNet, source, xml-rpc
Posted in Carpooling Research | No Comments »
Tuesday, November 10th, 2009
While searching for solutions on adopting Django for the server side of our Dynamic Car Pooling system, I found two very interesting projects:
- WAPI - a framework which abstracts the details involved in publishing an API and translates class methods to API methods, serializing the objects returned when possible. WAPI handles authentication, too, and other advanced functions. It's an amazing, fully Django compatible system that currently works over ReST (JSON, XML, YAML) but not with XML-RPC. Therefore, I contacted the author to have some information about the status of the project. It would be very interesting in our system, to provide API and XML-RPC services just by using his layer
- RPC4Django - provides XML-RPC and JSON-RPC support to an existing Django project. It promises a XML-RPC interface by just adding the decorator @rpcmethod to an existing python function. It also fully integrates with Django authentication framework
I'm going to experiment with these two tools. Obviously the first one is the most interesting because of its ability to "export" services in more formats. But the most important protocol for us is missing. Let's hope it will be added soon!
Tags: api, contact, django, DyCaPo, dynamic, Experiment, HTTP, pro, project, projects, promise, protocol, python, python django, rest, Serv, server, server side, sid, site, Status, web, xml-rpc
Posted in Carpooling Research, Free*, Programming | No Comments »
Thursday, October 29th, 2009
My third meeting at FBK is about to end. Today we discussed about some use-case, sequence and class diagrams I wrote during the week. Obviously there were lots of changes after the discussion and I will post them as soon as I've updated them. For the next time I will take a look at some implementation issues. The client side could be written using Android while for the server side we are seriously looking at Python and Django. It would be very interesting! For the communication, we are reasoning about XML-RPC, SOAP or a personalized Restful API. OpenTrip protocol might not be included in our implementation, as we don't have the time to parse non-standard XML and adapt the system to use it. But this is not a final decision.
I will also write some simple mockups to test all the possible combinations.
Tags: android, api, change, Client, django, DyCaPo, dynamic carpooling, dynamic ridesharing, FBK, HTTP, OpenTrip, personal, POST, pro, project, protocol, python, research, rest, Serv, server, server side, sid, soap, standard, URI, xml-rpc
Posted in Carpooling Research | No Comments »
Wednesday, July 29th, 2009
BD-review is a dynamic website to allow people to review releases (albums, demos, EPs, singles) of (young, unsigned) music bands. The project is the outcome of the Internet Technologies course at the Faculty of Computer Science of the Free University of Bolzano. The requirements of the project were to build a website using a small subset of JavaEE technologies, without the use of web-frameworks.
Therefore, this project is not really meant for production use. It was made as a strong, working and correct base for studying JavaEE academically. It should be useful for every student (also non-student) willing to have an overview on JSP and study it. The code is well-written, uses MVC, and the whole project is documented in detail in a 20+ pages report.

A screenshot of a Review
I encourage to read the PDF report of the project. It contains detailed information about the analysis and design phases, as well as the architecture description, screenshots, problems found etc. Please read also the README file. It contains configuration instructions.
There is a running demo located on the evaluation server of the course, but I think it will be removed soon.
Quick Jump:
Vision
Requirements Implemented
Technologies Overview
Download
License
The aim of the project is to build a dynamic website to allow people to review releases (albums, demos, EPs, singles) of (young, unsigned) music bands. Users will be able to signal interesting materials and review them, while other users will be able to comment the reviews, too.
This web 2.0-oriented application should allow unknown talented musicians to achieve a higher notoriety but also to improve their productions.

Screenshot of the personal user page
I report here the requirements of the course, all implemented by BD-review:
What BD-review implements is:
- User Management
- List existing users of the system
- Creation of a new user
- Deletion of the existing user
- List and modify access rights of the users
- check boxes with some capabilities (min 3)
- User registration and login to the system
- Items management
- Users add, edit or remove items
- Users comments or reviews items
- Administrator can manage the comments (edit,remove, add)
- Personalization
- Salutation for a returning user
- List resources that are new from the last visit
- Customization of the layout for a class of users.
- Techniques – MUST be used
- Static HTML
- CSS: all the look and feel must be in CSS files
- Javascript: check input and manage menus
- Servlet: Reading (parameters and headers) and writing headers and resulting page
- Servlet: Session management with cookies and session object
- Servlet: Redirect the client
- Servlet: Forward to another page or servlet
- JSP: Expressions, scriptlets and declarations Beans
- DBMS access trough JDBC
- Integration of JSP and Servlets (forward and include) using MVC pattern.
In addition, BD-review implements two Filters and plays with Regular Expressions.
- J2EE technologies (JSP, Servlets and JavaBeans)
- Database support (PostgreSQL 8.3) through JDBC 4
- XHTML Strict 1.0 + Cascading Style Sheets 2.1 for presentation
- Apache Commons for conversion and Bean population routines
- Some utility methods found on Books and Internet (their provenience is cited in the sourcecode)
- Javascript for confirmation system and form validation
- Regular Expressions
- TinyMCE rich WYSIWYG HTML editor

Screenshot: modifying a Review
PDF report of the project
Complete Source Code and Documentation (as Netbeans Project)
There will not be future developments for the project. It was not a real-life project but I will be very proud if you find it an useful example for learning JSP. You can also use it as a basis for developing a real project (also a University Project). You can do anything you want with BD-review, but please respect the license. I would be happy if you send me an email about your experience in using BD-review.
BD-review is released under The Gnu Affero GPL version 3! This is different from the license of the contents of the blog
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see < http ://www.gnu.org/licenses/ >.
Tags: 2009, academic, Analysis, apache, api, architecture, Blog, Client, code, configuration, Design, document, Download, dynamic, frameworks, free software, gpl, HEAD, HTTP, HTTPS, Internet, internet technologies, java, JavaEE, javascript, JSP, layout, life, list, music, page, pageTracker, PDF, personal, php, PNG, POST, pro, project, PUT, release, report, rest, review, screenshot, Serv, server, servlets, set, site, source, source code, sourcecode, Unibz, university, version, web, XHTML
Posted in | No Comments »