Corruption is a huge bane to Africa’s development. African countries must develop novel and localised solutions that will curb this menace, hence the birth of iReporter. iReporter enables any/every citizen to bring any form of corruption to the notice of appropriate authorities and the general public. Users can also report on things that needs government intervention.
- Create (sign up) user account
- Sign in (login) to the app
- Create a incident record
- Get all incident records
- Get a specific incident record
- Edit a specific incident record.
- Delete an incident record
- Admin can change the status of a record to either under investigation, rejected (in the event of a false claim) or resolved (in the event that the claim has been investigated and resolved).
Methods | EndPoint | Functionality | Access |
---|---|---|---|
POST | /api/v2/auth/signup | Sign up a user | PUBLIC |
POST | /api/v2/auth/login | Login a user | PUBLIC |
POST | /api/v2/incidents | Create an incident record a user | PRIVATE |
GET | /api/v2/incidents | Fetch all incident records. | PRIVATE |
GET | /api/v2/incidents/incident_id | Fetch a specific incident -record | PRIVATE |
PATCH | /api/v2/incidents/incident_id/location | Edit the location of a specific incident record | PRIVATE |
PATCH | /api/v2/incidents/incident_id/comment | Edit the comment of a specific incident record | PRIVATE |
DELETE | /api/v2/incidents/incident_id | Delete a specific red flag record. | PRIVATE |
Python3
- A programming language that lets us work more quickly.Flask
- A microframework for Python based on Werkzeug, Jinja 2 and good intentions.Virtualenv
- A tool to create an isolated virtual environment.Git
- Version Control System for tracking your changes.
Create a new directory and initialize git in it. Clone this repository by running
git clone https://github.com/nadralia/iReporter_ch3
Create a virtual environment. For example, with virtualenv, create a virtual environment named venv using
virtualenv venv
Activate the virtual environment
cd venv/scripts/activate
Install the dependencies in the requirements.txt file using pip
pip install -r requirements.txt
Start the application by running
python run.py
Enter the command below in the terminal to run the tests with coverage using pytest
python -m pytest tests/
export "APP_SETTINGS"=""
export "DATABASE_NAME"=""
export "DATABASE_USER"=""
export "DATABASE_PASSWORD"=""
export "DATABASE_HOST"=""
export "DATABASE_PORT"=""
run your .env file on terminal
source .env
Signup a user
{
"email": "adminireporter@gmail.com",
"firstname": "Admin",
"gender": "Male",
"is_admin": "True",
"lastname": "ireporter",
"othernames": "",
"password": "nadra2526#A",
"phonenumber": "+256779004531",
"username": "admin007"
}
Login a user
{
"password": "nadra2526#A",
"username": "admin007"
}
Post a redflag incident : api/v2/incidents
{
"incident_type": "red-flag",
"latitude": "6.5951139",
"longitude": "3.3429975",
"images": "rigg.jpg",
"videos": "goodvideo.mp4",
"comment": "Extortion at the NIRA"
}
https://dbireporter.herokuapp.com/
Adralia Nelson
Big thanks to LFA's and fellow colleagues at Andela for reviewing the project and the guiding on the basic principles.