200 likes | 437 Views
By:. oMap. Haitham Khateeb Yamama Dagash. Under Suppervision of:. Benny Daon. Agenda. 1. 5. Events. Goals. 2. 6. Methodology. Acquired skills. 3. 7. Life cycle. Future development. 4. 8. Site parts. Demonstration. Goals. Our goal is to build a web-platform that:
E N D
By: oMap Haitham Khateeb Yamama Dagash Under Suppervision of: Benny Daon
Agenda 1 5 Events Goals 2 6 Methodology Acquired skills 3 7 Life cycle Future development 4 8 Site parts Demonstration
Goals • Our goal is to build a web-platform that: • Assembles environmental data of all kinds in one place. • Helps local authorities adhere to the law and publish environmental data. • Enables people to get these information • Supports future extension through layers and API
Methodology • Use open source code packages - don't develop what's already available. • Open source code • The project is licensed under the BSD license • Extensive documentation + Automatic document generation from code and developer comments • Allow future extension • Easy to use interface
Project life cycle Learning new technologies on the way Idea Formulate Definition Research Work More Research Work
A lot of cool ideas Accurate definition • Brainstorm with the team members about the site features • Selected some of the ideas to fit in the project scope • Defined project requirements • Defined user types • User scenarios
Research • Which back-end data engine to use? • Various alternatives: GeoDjango, SimpleGeo, MongoDB • How to store and view data? • Various report file type • No fixed schema even for the reports of the same type • Which map system to use?
Map • The main part of the site • Displayed in the home page • The reports are displayed on top of it. • Each report is represented by a marker displayed on the relevant location • A click on the marker will bring short description of the report. • Full report is available by clicking on "more info" • Different layers support. • Multiple base layers support
Detailed View • Detailed view of the report • Displays the full report file. • support for various report file types. • Can be extended in the future to analyze the report content. • Report comments system • Allows the users to interact • Available for authenticated users only
Users • Users are managed by the auth.user django package • New regular user can create an account via the registration form • They have to provide a valid email to receive a confirmation link. • Super users are activated by admin • Some features are available for authenticated users only • Comments • Data insertion
New data insertion • Special interface for adding new reports • Can be accessed by super users only • The user has to fill in the report details: • Layer, subject, description, date, location • Provide the full report file • Will be saved as a raw data file in the server
API • The database API provides an easy way for future extension or even new platforms. • Developed using piston-django open source package • Distinction between registered and anonymous users • Database queries • Get all layers • Geo-spatial queries • Get points inside a given polygon • Get points in a given radius of a given point • http://127.0.0.1:8000/api/point/search/layer=Layer1&around=POINT (35.0722656215841013 32.3149192839854464)&r=50000000
Admin Panel • Special admin interface • Can be accessed by the site admin only • Provides easy to use interface for viewing/adding/updating database entries • for example admin is authorized to add/delete other users. Moreover he can add and delete points on the map.
Tests We used Django's testing application to test the data base operations and the page requests. For testing the data base we added users, layers and points, and assured that they were correctly added. For testing the page requests, we simulated post and get requests using django testing applications and made sure the right pages were loaded ( by using asserts).
Open Layers • Open Layers is an open source JavaScript library that provides maps support such as: • Base layers and overlays • Markers and click event handlers • Navigation tools • We use OpenStreetMaps for the base layer. And all the data of the same type are associated with the same overlay. • The user can choose which overlays to be visible.
Events • Brainstorming at the Sadna office • Site features ideas • Django developers meeting at the Sadna Offices • Suggestions from experienced django developers • Tsofen open source conference at Haifa • Presented the project for the public as an example of open source project
Acquired skills • Python • Research skills • Django/GeoDjango/Django Templates • Databases: Spatial databases (PostgreSQL, PostGIS) • HTML and web design • Git/GitHub • Developing in open source • CSS • JavaScript • OpenLayers • Automated testing
Future development • This project is the just the start! It provides the basic functionality. But there are many more to add. • The basis is built and robust: The back-end engine, the map and overlays. • The project will continue as an open-source. Every body is invited to take a part, you included :-). • Features to add: • Make the site user aware • Connect automated sensors • Import CBS data