Python Web App for Project Management
Budget: ₹600 – ₹1,500 INR
Intern Assignment: Build a Project Management Tool
Objective
The goal of this assignment is to evaluate your practical skills in Python, REST API development, and application architecture. You will build a simplified Project Management Tool that allows users to manage projects, tasks, teams, and track progress.
Project Brief
Build a Web Application for managing software projects. The tool should include basic project and task tracking features, including:
Project creation and assignment
Task management (create, update, delete)
User management (basic roles: Admin, Manager, Developer)
Task status tracking (To Do, In Progress, Done)
Deadline handling and basic metrics (task count per project, overdue tasks, etc.)
Tech Stack Requirements
Backend: Python (preferable), but any other backend language like NodeJS is also fine.
Database: MySQL or PostgreSQL
Frontend: JS or its frameworks like React, Angular, Next, or Vue
Tools: Postman, Swagger (for testing APIs), Git/Bitbucket (version control)
Functional Requirements
1. User Roles
Admin: Can manage all users, projects, and tasks.
Project Manager: Can create/edit projects and assign tasks to team members.
Developer: Can view tasks assigned to them, update task status, add comments.
2. Project Module
Create/Edit/Delete Projects
Assign team members
Track overall project status
3. Task Module
Create/Edit/Delete Tasks
Assign to user
Set deadlines
Change status (To Do → In Progress → Done)
Commenting (optional)
4. Authentication & Authorization (Optional)
Login with role-based access
JWT token-based security (bonus)
5. Reporting / Dashboard (Optional but Preferred)
Count of tasks by status
Tasks overdue
Progress bar for project completion
Non-Functional Requirements
RESTful API design
Proper folder structure and modularity
Exception handling
Unit testing (basic test cases using PyUnit or other frameworks/tools)
Code readability and documentation
Deliverables
Codebase (GitHub, Bitbucket, or zip)
ER diagram (image or PDF)
Postman Collection or Swagger Docs
README.md with:
How to run the project
API endpoints summary
Assumptions and improvements possible
Submission Guidelines
Submit your GitHub/Bitbucket repo or ZIP file via email or portal
Deadline: 21 September 2025 11:59 PM
Mention your full name and contact details in the README file
Bonus: AI-Powered User Story Generator using GROQ
Objective: Automatically generate detailed User Stories from a plain-text project description using the GROQ API and an LLM (like GPT-4).
Requirements:
Add a new endpoint: POST /api/ai/generate-user-stories
Input: Plain-text project description
Output: A list of user stories in this format:
css
CopyEdit
As a [role], I want to [action], so that [benefit].
Use GROQ + OpenAI model (GPT-4 or Mixtral)
Store generated stories linked to a project
(Optional) Create tasks automatically from stories
Example Input:
json
CopyEdit
{
"projectDescription": "An ecommerce website where customers can browse products, add to cart, and make payments online. Admin should manage products and view orders."
}
Expected Output:
json
CopyEdit
[
"As a customer, I want to browse products, so that I can choose what to buy.",
"As a customer, I want to add products to a cart, so that I can purchase them later.",
"As an admin, I want to manage the product catalog, so that the website reflects correct inventory."
]
Notes:
Use Groq’s hosted LLM API (or OpenAI key if Groq is not available)
Implement proper API key security (env variable, config)
FAQs
Q: Can I use external libraries?
Yes, but mention them clearly in your README with why they were used.
Q: Will I be evaluated if I submit only the backend or frontend?
No, backend-only submissions are not acceptable and will not be evaluated.
Q: To what extent can I use GenAI?
It’s preferable if you don’t use GenAI to write your code, however using GenAI models to ensure syntax and clarity of your code is acceptable.
Q: What does the Bonus section mean here?
Bonus means you get an extra credit (an edge over other candidates) if you achieve the outcome expected under the Bonus section. For us, it means you know the basics of implementing AI, hence the focused section.
Objective
The goal of this assignment is to evaluate your practical skills in Python, REST API development, and application architecture. You will build a simplified Project Management Tool that allows users to manage projects, tasks, teams, and track progress.
Project Brief
Build a Web Application for managing software projects. The tool should include basic project and task tracking features, including:
Project creation and assignment
Task management (create, update, delete)
User management (basic roles: Admin, Manager, Developer)
Task status tracking (To Do, In Progress, Done)
Deadline handling and basic metrics (task count per project, overdue tasks, etc.)
Tech Stack Requirements
Backend: Python (preferable), but any other backend language like NodeJS is also fine.
Database: MySQL or PostgreSQL
Frontend: JS or its frameworks like React, Angular, Next, or Vue
Tools: Postman, Swagger (for testing APIs), Git/Bitbucket (version control)
Functional Requirements
1. User Roles
Admin: Can manage all users, projects, and tasks.
Project Manager: Can create/edit projects and assign tasks to team members.
Developer: Can view tasks assigned to them, update task status, add comments.
2. Project Module
Create/Edit/Delete Projects
Assign team members
Track overall project status
3. Task Module
Create/Edit/Delete Tasks
Assign to user
Set deadlines
Change status (To Do → In Progress → Done)
Commenting (optional)
4. Authentication & Authorization (Optional)
Login with role-based access
JWT token-based security (bonus)
5. Reporting / Dashboard (Optional but Preferred)
Count of tasks by status
Tasks overdue
Progress bar for project completion
Non-Functional Requirements
RESTful API design
Proper folder structure and modularity
Exception handling
Unit testing (basic test cases using PyUnit or other frameworks/tools)
Code readability and documentation
Deliverables
Codebase (GitHub, Bitbucket, or zip)
ER diagram (image or PDF)
Postman Collection or Swagger Docs
README.md with:
How to run the project
API endpoints summary
Assumptions and improvements possible
Submission Guidelines
Submit your GitHub/Bitbucket repo or ZIP file via email or portal
Deadline: 21 September 2025 11:59 PM
Mention your full name and contact details in the README file
Bonus: AI-Powered User Story Generator using GROQ
Objective: Automatically generate detailed User Stories from a plain-text project description using the GROQ API and an LLM (like GPT-4).
Requirements:
Add a new endpoint: POST /api/ai/generate-user-stories
Input: Plain-text project description
Output: A list of user stories in this format:
css
CopyEdit
As a [role], I want to [action], so that [benefit].
Use GROQ + OpenAI model (GPT-4 or Mixtral)
Store generated stories linked to a project
(Optional) Create tasks automatically from stories
Example Input:
json
CopyEdit
{
"projectDescription": "An ecommerce website where customers can browse products, add to cart, and make payments online. Admin should manage products and view orders."
}
Expected Output:
json
CopyEdit
[
"As a customer, I want to browse products, so that I can choose what to buy.",
"As a customer, I want to add products to a cart, so that I can purchase them later.",
"As an admin, I want to manage the product catalog, so that the website reflects correct inventory."
]
Notes:
Use Groq’s hosted LLM API (or OpenAI key if Groq is not available)
Implement proper API key security (env variable, config)
FAQs
Q: Can I use external libraries?
Yes, but mention them clearly in your README with why they were used.
Q: Will I be evaluated if I submit only the backend or frontend?
No, backend-only submissions are not acceptable and will not be evaluated.
Q: To what extent can I use GenAI?
It’s preferable if you don’t use GenAI to write your code, however using GenAI models to ensure syntax and clarity of your code is acceptable.
Q: What does the Bonus section mean here?
Bonus means you get an extra credit (an edge over other candidates) if you achieve the outcome expected under the Bonus section. For us, it means you know the basics of implementing AI, hence the focused section.
Related categories:
JavaScript
Python
Project Management
MySQL
Git
Documentation
API Development
Next.js