Python Web App for Project Management

Job ID: 39805487

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.