Python Assignment
Python Assignment
Objective:
Create a basic RESTful API for managing a to-do list.
Requirements:
1. Setup:
- Use Flask, Django, or FastAPI for the web framework.
- Use SQLite for the database.
2. API Endpoints:
- `GET /todos` - Retrieve a list of all to-do items.
- `POST /todos` - Add a new to-do item.
- `PUT /todos/<id>` - Update a to-do item.
- `DELETE /todos/<id>` - Delete a to-do item.
3. Data Model:
- ID (auto-incremented)
- Title
- Description
- Completed (boolean)
4. Validation:
- Ensure that title and description are provided when creating a to-do
item.
- Validate data types for each field.
5. Error Handling:
- Implement basic error handling and return appropriate HTTP status
codes.
6. Documentation:
- Provide a short README file explaining how to set up and test the API.
Submission Requirements:
- Source code hosted on a public GitHub repository.
- Clear README with setup and usage instructions.
---
Objective:
Create a basic web application to interact with the To-Do List API
developed in the backend assignment.
Requirements:
1. UI Framework:
- Use basic HTML, CSS, and vanilla JavaScript or a simple framework
like React or Vue.js.
2. Functionality:
- Display the list of to-do items retrieved from the API.
- Provide a form to add a new to-do item.
- Allow users to mark a to-do item as completed.
- Allow users to delete a to-do item.
3. Design:
- Create a clean and simple user interface.
- Ensure that the application is responsive and works on different screen
sizes.
4. Submission Requirements:
- Source code hosted on a public GitHub repository.
- A README file with clear instructions on how to set up and run the
project locally.
Evaluation Criteria:
1. Backend Assignment:
- Simplicity and clarity of the code.
- Correct implementation of CRUD operations.
- Proper data validation and error handling.
- Clear documentation.
2. Frontend Assignment:
- User interface design and ease of use.
- Correct implementation of API calls and UI updates.
- Basic error handling and validation.
- Clear documentation.