The project is a small backend app. The idea: users can create meetups that are held at a certain time and place. The meetup can be educational, sport or professional.
- Signup
- Login
- Retrieve all users or a single user
- Update/Delete a user
- Create a new meetup
- Retrieve all meetups or a single meetup
- Update/Delete a meetup
- Programming language - Python
- Web Framework - Django
- DB - PostgreSQL
- Create a Postgres DB called "meetups_db" on your computer.
- Run
python3 -m venv venvto create a virtual environment. - Run
source venv/bin/activateto activate a virtual environment. - Run
pip install -r requirements.txtto install all necessary dependencies. - Run
python src/manage.py makemigrations meetups_backendto create migrations. - Run
python src/manage.py migrateto apply the migrations. - Run
python src/manage.py loaddata --app meetups_backend post_type.jsonto populate the DB with the post types. - Run
python src/manage.py runserver localhost:8000to launch the server.
The project can also be launched using Docker. It will create two containers: the app itself and a Postgres DB. Besides launching the containers, you also have to apply migrations and populate the DB with the post types.
- Run
docker-compose up -dto create and launch backend and DB containers. - Run
docker-compose exec backend python /code/manage.py makemigrations meetups_backendto create migrations. - Run
docker-compose exec backend python /code/manage.py migrateto apply the migrations. - Run
docker-compose exec backend python /code/manage.py loaddata --app meetups_backend post_type.jsonto populate the DB with the post types.
Simply execute python src/manage.py test tests.
A more detailed documentation can be found in "docs" directory. It describes the API endpoints, DB schema, migrations and automated tests.
In the future, I would like to implement the following features:
- Reset password
- Assign a user to a certain meetup
- Remind the user about the meetup via email notification