SoftDesk is a project management platform that allows users to manage projects, issues, and comments in a secure, scalable, and energy-efficient way. This API serves as the backend system for client applications across different platforms. The API is designed with security standards (OWASP), GDPR compliance, and optimized for green code principles.
- User Management:
- Authentication with JSON Web Tokens (JWT).
- Age verification for data collection and consent.
- Privacy options with GDPR compliance (can_be_contacted, can_data_be_shared).
- Project Management:
- Create, update, and delete projects.
- Projects can be categorized by type (Back-end, Front-end, iOS, Android).
- Issue Management:
- Create, assign, and prioritize issues (tasks/bugs).
- Issues can be tagged with different priorities (LOW, MEDIUM, HIGH) and types (BUG, TASK, FEATURE).
- Comment System
- Comment on issues to facilitate team collaboration.
- Comments are tied to specific issues.
- Security:
- Implements OWASP security standards.
- Role-based access control for project contributors.
- Green Code:
- Optimized queries to reduce server load and increase efficiency.
- Python 3.x
- pip
-
Clone the GitHub repository
git clone https://github.com/HDanDev/SoftDesk.git cd SoftDesk
-
Install Pipenv
pip install pipenv pipenv install
-
Activate the virtual environment
pipenv shell
-
Install dependencies
pipenv install -r requirements.txt
-
Move within managing scope
cd softdesk
Run the development server
py manage.py runserver
Access the application
Open your browser and go to: http://localhost:8000
Or use a tool such as Postman to simplify your requests.
Method | Endpoint | Description |
---|---|---|
POST | /users/register |
Register a new user |
POST | /users/login |
User login, returns JWT |
GET | /projects |
List all projects |
POST | /projects |
Create a new project |
GET | /projects/:id |
Get a single project |
PUT | /projects/:id |
Update a project |
DELETE | /projects/:id |
Delete a project |
POST | /issues |
Create an issue for a project |
GET | /issues |
Get all issues |
POST | /comments |
Add a comment to an issue |
GET | /comments |
List all comments |