Skip to content

Prometheus is simple Team/Volunteer Need management tool (Flask)

License

Notifications You must be signed in to change notification settings

kickapoo/prometheus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

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.

Screenshots

Prometheus

Demo Case

Chios island: chios.prometheus.online

How this project started?

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.

Build with

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.

Setup at localhost

Requirements:

  1. Computer with python 2.7 installed
  2. Virtualenv installed
  3. 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

Prometheus File structure

- 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

Extensions and Frontend libs

Prometheus as native Flask app take the advantage of the following extentions:

  1. Flask-SQLAlchemy
  2. Flask-Script
  3. Flask-Moment
  4. Flask-Bootstrap
  5. Flask-Login

Also, OpenWeatherMaps.org data are used through PyOWM - A Python wrapper around the OpenWeatherMap web API

For front-end the following are used:

  1. SB-Admin 2 as the bootstrap theme for the admin panel
  2. Leaflet.js maps
  3. MakiMarker for more pointer icons options
  4. Datatables for listing and searchin database records
  5. Font-Awesome for more icons options

TODO

  1. Add Unit Test (Any project that respect it self should be include Unit Tests)
  2. Support mutlilanguage with Flask-Babel
  3. Overhaul front end from someone who actually knows more html,css than backend coding.
  4. Find funding to continue adding features like Materials (Wharehouse) management or mobile application.

Contribute

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.

Licence

GNU GENERAL PUBLIC LICENSE Version 3

About

Prometheus is simple Team/Volunteer Need management tool (Flask)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published