Prometheus is a web app to support Teams/Volunteer with their Needs management. It separates users to two roles, Coordinators and Volunteer. Any Volunteer can be a Coordinator and a Coordinator must be a Volunteer.
A Coordinator can register Volunteers and grand them access to the system or change Volunteer role to Coordinator. Cordinators can also add a Spot, which are the geolocations that Teams operate. Finally, a Coordinator can add daily Needs with the number of volunteers needed and time period requested (morning, evening etc)
After a Need is submitted, all Volunteers with access can select to contribute to a specific Need and listed to that specific Need. If Volunteer fill the number that is needed, Need is closed for further selection.
As a sequence of the above, Coordinators know which the Need cycle and from which Volunteers this Need will be fullfilled.
Chios island: chios.prometheus.online
Prometheus started as part of Informatics & Communications Technologies for Development, Aid, Support and Collaboration (ICT4dascgr) actions to support Volunteers that take part on helping refugees across Aegean, Greek islands. There are other tools that serve the same goal but Prometheus wants to stand among them through the simplicity it offers. Prometheus, does what it says and say what is does, nothing more or nothing else.
Prometheus is a Flask web application with Sqlite3 database. The choice of SQLite is crusial as requires no special settings. Also the single database file can be shared easily supporting the main operation center.
Requirements:
- Computer with python 2.7 installed
- Virtualenv installed
- OpenWeatherMaps.org API KEY
Assuming that the reader has some pre-knowledge using ternimal and command line, the next standard steps must be followed in order:
1. Download/Extract repository zip file or clone repository
2. $ cd prometheus
3. Edit the following 'configs/prometheus-settings.py'
- OWM_KEY , openweathermaps.org API KEY
- AREA, the installation area name ex. 'CHIOS'
- MAP_LAT_CENTER,
- MAP_LON_CENTER,
4. virtualenv venv
5. $ /venv/bin/pip install -r requirement.txt
6. $ /venv/bin/python manager.py init_prometheus
7. $ /venv/bin/python manager.py runserver
8. Go to 127.0.0.1:5000 or localhost:5000i
9. Enter system using the credentials:
email: [email protected]
pass: admin
- config
- default.py # Basic Flask config options
- prometheus-settings.py # Special settings like lat or lon coordinates
- prometheus
- __init__.py
- blueprints
- landing_page # Single Page
- auth # Login/Logout
- coordinators
- volunteers
- api # Using AuthO to authenticate
- models
- auth.py # User and UserRoles
- core.py # Team Volunteer Spot Need
- static
- templates
Prometheus as native Flask app take the advantage of the following extentions:
Also, OpenWeatherMaps.org data are used through PyOWM - A Python wrapper around the OpenWeatherMap web API
For front-end the following are used:
- SB-Admin 2 as the bootstrap theme for the admin panel
- Leaflet.js maps
- MakiMarker for more pointer icons options
- Datatables for listing and searchin database records
- Font-Awesome for more icons options
- Add Unit Test (Any project that respect it self should be include Unit Tests)
- Support mutlilanguage with Flask-Babel
- Overhaul front end from someone who actually knows more html,css than backend coding.
- Find funding to continue adding features like Materials (Wharehouse) management or mobile application.
Feel free to contribute by using github issues and pull requests or just by sharing this project to others. The rule is simple, if a contribution rather than mine exists, a page in footer will be added to list Contributor name with a link to their personal page. By Coordibution does't mean only coding.