![Logo](/AI-Project-Planner/project_planner_be/raw/main/images/logo.png)
An api for users to generate everything needed for their next software development project!
Report Bug
·
Request Feature
Table of Contents
Project Planner is designed to streamline the project planning process for junior to mid level developers. By leveraging advanced AI technology, this app assists users in crafting comprehensive project plans and generating innovative ideas tailored to their chosen project type and preferred technologies.
Project Spec/Requirements
Ensure you have the following installed prior to installing the Project Planner App:
- Python 3.11.4
- Django-Admin 4.2.4
- Postgresql 14
- pip 23.2.1
Follow these steps to install the Project Planner App:
-
Get an API Key and/or Application Keys at: OpenAI API
-
Fork or clone a copy of this repo, then run the following commands from the project directory in your terminal:
git clone https://github.com/AI-Project-Planner/project_planner_be.git
-
Navigate to the project directory:
cd project_planner_be
-
Create a virtual environment (optional but recommended):
python3 -m venv env
-
Activate the virtual environment:
-
macOS/Linux:
source env/bin/activate
-
Windows:
source env/Scripts/activate
-
-
Install the required environment packages:
pip install -r requirements.txt
-
Run migrations:
python3 manage.py makemigrations python3 manage.py migrate
-
Run test suite to ensure functionality is working.
python3 manage.py test
-
If any modules are missing:
pip install < MISSING MODULE >
-
Start the development server:
python3 manage.py runserver
- The server should start running at http://127.0.0.1:8000/
-
Enter your Keys in
.env
SECRET_KEY: <your_django_secret_key> OPEN_API_KEY: <open_ai_api_key>
POST /api/v1/users/:id/projects
:id => user_id
Code | Description |
---|---|
200 | OK |
{
"type": "frontend",
"technologies": "react, typescript and javascript",
"time": "1 week",
"collaborators": 2
}
{
"id": "1",
"type": "project",
"attributes": {
"name": "TaskMaster Pro",
"steps": "Project Setup: Create Git repository and define project structure\nBackend Setup: Develop Express.js application, set up API routes\nDatabase Design: Design and implement database schema",
"description": "TaskMaster Pro is an all-inclusive task management application designed to optimize team collaboration and productivity.",
"features": "User registration and login\nCreate, assign, update, and track tasks\nReal-time collaboration and updates\nPriority-based task categorization",
"interactions": "User logs in to TaskMaster Pro account.\nDashboard displays tasks by priority: High, Medium, Low.\nUser adds a task, assigns it, and sets a due date.\nTask appears under the respective priority category.\nAssigned user starts task, status updates in real-time.\nUpon completion, task is marked as done and updates for all.",
"colors": "#3498DB\n#27AE60\n#F39C12\n#F0F3F4\n#333333\n#E74C3C",
"saved": false,
"timeline": "week",
"timeline_int": 1,
"user_id": "1"
}
}
Code | Description |
---|---|
503 | Server is down. |
{
"Error": "Server is down.",
"Status": 500
}
PATCH /api/v1/users/:user_id/projects/:project_id/
:user_id => user_id
:project_id => project_id
Code | Description |
---|---|
202 | ACCEPTED |
{
"saved": "true"
}
{
"id": "1",
"type": "project",
"attributes": {
"user_id": 1,
"name": "TaskMaster Pro",
"steps": "Project Setup: Create Git repository and define project structure\nBackend Setup: Develop Express.js application, set up API routes\nDatabase Design: Design and implement database schema",
"description": "TaskMaster Pro is an all-inclusive task management application designed to optimize team collaboration and productivity.",
"features": "User registration and login\nCreate, assign, update, and track tasks\nReal-time collaboration and updates\nPriority-based task categorization",
"interactions": "User logs in to TaskMaster Pro account.\nDashboard displays tasks by priority: High, Medium, Low.\nUser adds a task, assigns it, and sets a due date.\nTask appears under the respective priority category.\nAssigned user starts task, status updates in real-time.\nUpon completion, task is marked as done and updates for all.",
"colors": "#3498DB\n#27AE60\n#F39C12\n#F0F3F4\n#333333\n#E74C3C",
"saved": true,
"timeline": "week",
"timeline_int": 1,
"tagline": "Effortlessly manage and track tasks.",
"collaborators": 4,
"logo_url": "",
"logo_font": ""
}
}
Code | Description |
---|---|
404 | Project or User ID not found. |
{
"Error": "Project or User ID not found.",
"Status": 404
}
PUT /api/v1/users/:user_id/projects/:project_id/
:user_id => user_id
:project_id => project_id
Code | Description |
---|---|
202 | ACCEPTED |
{
"collaborators": 5,
}
{
"id": "1",
"type": "project",
"attributes": {
"user_id": 1,
"name": "TaskMaster Pro",
"steps": "Project Setup: Create Git repository and define project structure\nBackend Setup: Develop Express.js application, set up API routes\nDatabase Design: Design and implement database schema",
"description": "TaskMaster Pro is an all-inclusive task management application designed to optimize team collaboration and productivity.",
"features": "User registration and login\nCreate, assign, update, and track tasks\nReal-time collaboration and updates\nPriority-based task categorization",
"interactions": "User logs in to TaskMaster Pro account.\nDashboard displays tasks by priority: High, Medium, Low.\nUser adds a task, assigns it, and sets a due date.\nTask appears under the respective priority category.\nAssigned user starts task, status updates in real-time.\nUpon completion, task is marked as done and updates for all.",
"colors": "#3498DB\n#27AE60\n#F39C12\n#F0F3F4\n#333333\n#E74C3C",
"saved": true,
"timeline": "week",
"timeline_int": 1,
"tagline": "Effortlessly manage and track tasks.",
"collaborators": 5,
"logo_url": "",
"logo_font": ""
}
}
Code | Description |
---|---|
404 | Project or User ID not found. |
{
"Error": "Project or User ID not found.",
"Status": 404
}
GET /api/v1/users/:id/projects/
:id => user_id
Code | Description |
---|---|
200 | OK |
{
"data":
[
{
"id": "1",
"type": "project",
"attributes": {
"user_id": 1,
"name": "TaskMaster Pro",
"steps": "Project Setup: Create Git repository and define project structure\nBackend Setup: Develop Express.js application, set up API routes\nDatabase Design: Design and implement database schema",
"description": "TaskMaster Pro is an all-inclusive task management application designed to optimize team collaboration and productivity.",
"features": "User registration and login\nCreate, assign, update, and track tasks\nReal-time collaboration and updates\nPriority-based task categorization",
"interactions": "User logs in to TaskMaster Pro account.\nDashboard displays tasks by priority: High, Medium, Low.\nUser adds a task, assigns it, and sets a due date.\nTask appears under the respective priority category.\nAssigned user starts task, status updates in real-time.\nUpon completion, task is marked as done and updates for all.",
"colors": "#3498DB\n#27AE60\n#F39C12\n#F0F3F4\n#333333\n#E74C3C",
"timeline": "week",
"timeline_int": 1,
"saved": true,
"tagline": "Effortlessly manage and track tasks.",
"collaborators": 4,
"logo_url": "",
"logo_font": ""
}
},
{
"id": "2",
"type": "project",
"attributes": {
"user_id": 1,
"name": "Different Project Pro",
"steps": "Project Setup: Create Git repository and define project structure\nBackend Setup: Develop Express.js application, set up API routes\nDatabase Design: Design and implement database schema",
"description": "It's different!",
"features": "User registration and login\nCreate, assign, update, and track tasks\nReal-time collaboration and updates\nPriority-based task categorization",
"interactions": "User logs in to TaskMaster Pro account.\nDashboard displays tasks by priority: High, Medium, Low.\nUser adds a task, assigns it, and sets a due date.\nTask appears under the respective priority category.\nAssigned user starts task, status updates in real-time.\nUpon completion, task is marked as done and updates for all.",
"colors": "#3498DB\n#27AE60\n#F39C12\n#F0F3F4\n#333333\n#E74C3C",
"saved": true,
"timeline": "days",
"timeline_int": 4,
"tagline": "Manage and track tasks differently.",
"collaborators": 4,
"logo_url": "",
"logo_font": ""
}
}
]
}
Error Response:
Code | Description |
---|---|
404 | User ID not found. |
{
"Error": "User ID not found.",
"Status": 404
}
DELETE /api/v1/users/:user_id/projects/:project_id/
:user_id => user_id
:project_id => project_id
Code | Description |
---|---|
200 | SUCCESSFUL |
{
"messages": "Project with id " {project_id} + " was deleted."
}
Code | Description |
---|---|
404 | Project or User ID not found. |
{
"Error": "Project or User ID not found.",
"Status": 404
}
- Add update and delete functionality for projects
- Add an endpoint to GET all users
- Logo Generation using AI
- Allow users to login using Oauth through Github
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Follow Installation Instructions
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Project Link: https://github.com/AI-Project-Planner/project_planner_be
Our wonderful Front End Team!!
Our amazing instructors: