Fullstack Internship Technical Task: Building a To-Do List Application
Your task is to create a simple To-Do List application using Django as the backend framework and ReactJS as the frontend library. The application should allow users to create, update, delete, and mark tasks as completed.
Time Duration:
- 48 hours
- Create a Django project and set up a virtual environment.
- Design a model for tasks with the following fields: title, description, due_date, completed.
- Implement RESTful API endpoints for CRUD operations on tasks.
- Use appropriate serializers to handle data serialization and deserialization.
- Implement necessary error handling and validation.
- Use a database of your choice (SQLite is recommended for simplicity).
- Set up a ReactJS project using Create React App or any preferred setup.
- Create components for the following:
- Task list display
- Task creation
- Task Editing
- Fetch tasks from the backend API and display them in a list.
- Implement functionality to create, edit, and delete tasks.
- Implement the ability to mark tasks as completed.
- Style the application for a clean and user-friendly interface.
- Integration:
- Use appropriate HTTP methods for making API requests from the frontend.
- Ensure seamless communication between the two ends.
- Extras (Optional, if time permits):
- Implement task sorting and filtering options (e.g., by due date, completion status).
- Incorporate visual cues for task priorities (e.g., color-coded based on due date).
Upon completion, please provide the following:
- Fork this GitHub repository Assignment Repo to your own GitHub account.
- Commit your code regularly and push the changes to your forked repository.
- Do not create a pull request; just submit your forked repository.
- Provide a DOCS.md file with all the technologies used and how to run the program locally.
- Once you have completed the assignment, share the repository URL with us via the submission form.
- Join this discord server to get an update: Join Here
- Submission Deadline: Task Submission: 2023/08/15 1:00 PM
Your task will be evaluated based on the following criteria:
- Functionality: Does the application meet the specified requirements?
- Code Quality: Is the code well-structured, readable, and maintainable?
- User Interface: Is the frontend intuitive, responsive, and visually appealing?
- Technical Choices: Did you use appropriate technologies and libraries for the task?
- Integration: Is there seamless communication between the frontend and backend?
- Bonus Features: Any extra features beyond the basic requirements will be considered a plus.
Note: Feel free to reach out if you have any questions during the task. Good luck, and we're excited to see your work!