0% found this document useful (0 votes)
1 views5 pages

Python Developer Intern Task

Uploaded by

pavithra061204
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views5 pages

Python Developer Intern Task

Uploaded by

pavithra061204
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

🚀 Python Developer Intern Task –

FastAPI Task Manager (With Basic


Frontend)
📌 Objective
Build a simple Task Manager Web Application consisting of:

●​ A FastAPI backend (REST API)


●​ A very basic frontend

This assignment evaluates:

●​ Python fundamentals
●​ REST API development
●​ Authentication (JWT)
●​ Database integration
●​ Basic frontend integration
●​ Code structure and clarity

Keep it simple, clean, and functional. We value clarity over complexity.

🧱 Part 1 – Backend (FastAPI)


✅ Core Features
1️⃣ Authentication

●​ User registration
●​ User login
●​ JWT-based authentication
●​ Password hashing (bcrypt)

2️⃣ Task Management


Authenticated users should be able to:

●​ Create a task
●​ View all their tasks
●​ View a specific task
●​ Mark a task as completed
●​ Delete a task

Users must only access their own tasks.

📂 Required Endpoints
Authentication
POST /register
POST /login

Tasks
POST /tasks
GET /tasks
GET /tasks/{id}
PUT /tasks/{id}
DELETE /tasks/{id}

🗄 Technical Requirements (Backend)


●​ Use FastAPI
●​ Use SQLite or PostgreSQL
●​ Use SQLAlchemy or SQLModel
●​ Use Pydantic models
●​ Proper HTTP status codes
●​ Proper error handling
●​ Clean folder structure (avoid everything in one file)

🎨 Part 2 – Basic Frontend (Simple UI)


Create a minimal frontend to allow easy testing.

You may use:

●​ Plain HTML + CSS + JavaScript​


OR
●​ Simple React / [Link]​
OR
●​ Jinja templates with FastAPI

Frontend Must Allow:

●​ User registration
●​ User login
●​ Create task
●​ View tasks
●​ Mark task completed
●​ Delete task

⚠️ UI design does NOT matter.​


We are evaluating functionality, not design.

A simple page with forms and buttons is enough.

🌐 Deployment Requirement
✅ Mandatory Submission
You must submit:

1.​ Public GitHub repository link


2.​ Live deployment link (Render / Railway / Vercel preferred)

Deployment Guidelines:

●​ Full application must be accessible


●​ Frontend must connect to backend
●​ /docs endpoint must be accessible
●​ Environment variables properly configured
●​ Do NOT commit .env file
●​ Include .[Link]

📄 Repository Must Include


●​ [Link] with:
○​ Project overview
○​ Setup instructions
○​ Environment variables
○​ How to run locally
○​ Deployment link
●​ [Link]
●​ Clean commit history (avoid single large commit)

Rules
●​ Pagination for tasks
●​ Filtering (?completed=true)
●​ Basic test cases (pytest)
●​ Dockerfile
●​ Responsive UI
●​ Proper separation of frontend and backend folders
●​ You can use AI

🚫 Important Rules
●​ Do NOT hardcode secrets
●​ Do NOT commit .env
●​ Do NOT submit ZIP files
●​ Do NOT share private repositories
🧪 How We Evaluate
We will evaluate based on:

●​ Code structure and organization


●​ Correct API behavior
●​ Authentication implementation
●​ Database design
●​ Frontend-backend integration
●​ Error handling
●​ README clarity
●​ Deployment functionality

We should be able to:

1.​ Open your hosted link


2.​ Register
3.​ Login
4.​ Create a task
5.​ Mark it completed
6.​ Delete it

You might also like