JOIN Backend is a RESTful API service designed for the JOIN Kanban Board task management application. It provides endpoints for user authentication, task management, and data handling, ensuring smooth communication between the frontend and backend components.
- Python: 3.13.1
- Django: 5.1.6
- Django REST Framework: 3.15.2
asgiref==3.8.1
Django==5.1.6
django-cors-headers==4.7.0
djangorestframework==3.15.2
djangorestframework_simplejwt==5.5.0
PyJWT==2.9.0
sqlparse==0.5.3
tzdata==2025.1
-
Clone the repository:
git clone https://github.com/Anna-Fritz/JOIN_backend.git cd JOIN_backend -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Apply database migrations:
python manage.py migrate
-
Start the development server:
python manage.py runserver
-
User Management:
GET, POST /user/→ Retrieve all users or create a new user.GET, PUT, PATCH, DELETE /user/{id}/→ Retrieve, update, destroy a specific user.
-
Task Management:
GET, POST /task/→ Retrieve all tasks or create a new task.GET, PUT, PATCH, DELETE /task/{id}/→ Retrieve, update, destroy details of a specific task.
-
Subtask Management:
GET, POST /task/{id}/subtask/→ Retrieve or create subtasks for a task.GET, PUT, PATCH, DELETE /task/{task_id}/subtask/{id}/→ Retrieve, update, destroy details of a specific subtask.
-
Summary:
GET /summary/→ Retrieve an overview of tasks and deadlines.
-
Priority Management:
GET, POST /prio/→ Retrieve a list of priorities or create a new priority.
-
Category Management:
GET, POST /category/→ Retrieve a list of categories or create a new category.
-
User Profiles:
GET, POST /profiles/→ Retrieve all user profiles or create a new one.GET /profiles/{id}/→ Retrieve details of a specific user profile.
-
Authentication:
POST /registration/→ Register a new user.POST /login/→ Log in and receive authentication tokens.POST /login/refresh/→ Refresh the authentication token.POST /logout/→ Log out the current user.
- Uses JWT (JSON Web Tokens) for authentication.
- Access Token and Refresh Token implementation for secure session management.
- Database Technology: SQLite (default, can be switched to PostgreSQL or MySQL if needed).
- Run Migrations:
python manage.py migrate
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).
- Share: You may copy and redistribute the material in any format or medium.
- Adapt: You may remix, transform, and build upon the material.
- Non-Commercial: You may not use the material for commercial purposes.
For full details, see the official license documentation.
Developed and maintained by Anna.
For questions, feedback, or contributions, feel free to open an issue or submit a pull request on GitHub.