Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fahadfoysal/project-management-api
A project management tool that allows teams to collaborate on projects. The tool needs an API to manage users, projects, tasks, and comments. The API will be consumed by their front-end web application and mobile application.
https://github.com/fahadfoysal/project-management-api
django django-rest-framework python rest-api sqlite
Last synced: 6 days ago
JSON representation
A project management tool that allows teams to collaborate on projects. The tool needs an API to manage users, projects, tasks, and comments. The API will be consumed by their front-end web application and mobile application.
- Host: GitHub
- URL: https://github.com/fahadfoysal/project-management-api
- Owner: fahadfoysal
- Created: 2024-12-16T11:15:42.000Z (26 days ago)
- Default Branch: main
- Last Pushed: 2025-01-01T08:48:59.000Z (10 days ago)
- Last Synced: 2025-01-01T09:25:36.895Z (10 days ago)
- Topics: django, django-rest-framework, python, rest-api, sqlite
- Language: Python
- Homepage:
- Size: 82 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project management tool - an API
a project management tool that allows
teams to collaborate on projects. The tool needs an API to manage users, projects,
tasks, and comments. The API will be consumed by their front-end web application
and mobile application.## Features
- JWT Authentication
- Custom User Model
- Full CRUD functionality
- API Doc by Swagger
- And many more.## Technologies Used
### Backend
- **Python**: 3.x
- **Django**: 5.x
- **DRF**: 3.x
- **JWT**
- **SQLite**: (default database for Django projects)## Setup Instructions
1. **Clone the repository:**
```bash
git clone https://github.com/fahadfoysal/project-management-api.git
```2. **Create a virtual environment:**
```bash
python -m venv venv
```3. **Activate the virtual environment:**
- **Windows:**
```bash
venv\Scripts\activate
```- **macOS/Linux:**
```bash
source venv/bin/activate
```4. **Install the required packages:**
```bash
pip install -r requirements.txt
```5. **Run migrations to set up the database:**
```bash
python manage.py migrate
```6. **Create a superuser (optional, for accessing the admin interface):**
```bash
python manage.py createsuperuser
```7. **Run the development server:**
```bash
python manage.py runserver
```8. **Access the application in your web browser:**
Open your browser and navigate to: [http://localhost:8000](http://localhost:8000)
## Usage/Examples
```
Access the Django admin panel at http://localhost:8000/admin/ to manage everything.Access Swagger UI for better API doc at http://127.0.0.1:8000/swagger/
## REST API Endpoints:
- Register User (POST /api/users/register/): Create a new user.
- Login User (POST /api/users/login/): Authenticate a user and return a token.
- Get User Details (GET /api/users/{id}/): Retrieve details of a specific user.
- Update User (PUT/PATCH /api/users/{id}/): Update user details.
- Delete User (DELETE /api/users/{id}/): Delete a user account.## Token Authentication
Token-based authentication is used for API endpoints. After logging in, obtain a token and include it in the header of subsequent requests as follows:
## API Endpoints for Projects
- List Projects (GET /api/projects/): Retrieve a list of all projects.
- Create Project (POST /api/projects/): Create a new project.
- Retrieve Project (GET /api/projects/{id}/): Retrieve details of a specific project.
- Update Project (PUT/PATCH /api/projects/{id}/): Update project details.
- Delete Project (DELETE /api/projects/{id}/): Delete a project.## API Endpoints for Task
- List Tasks (GET /api/projects/{project_id}/tasks/): Retrieve a list of all tasks in
a project.
- Create Task (POST /api/projects/{project_id}/tasks/): Create a new task in a
project.
- Retrieve Task (GET /api/tasks/{id}/): Retrieve details of a specific task.
- Update Task (PUT/PATCH /api/tasks/{id}/): Update task details.
- Delete Task (DELETE /api/tasks/{id}/): Delete a task.## API Endpoints for Comments
- List Comments (GET /api/tasks/{task_id}/comments/): Retrieve a list of all
comments on a task.
- Create Comment (POST /api/tasks/{task_id}/comments/): Create a new
comment on a task.
- Retrieve Comment (GET /api/comments/{id}/): Retrieve details of a specific
comment.
- Update Comment (PUT/PATCH /api/comments/{id}/): Update comment
details.
- Delete Comment (DELETE /api/comments/{id}/): Delete a comment.