General Instructions:
1. Submission Format:
○ Zip your project folder with the code, necessary configurations, and a README
file.
○ Include clear instructions on how to run the project in the README file.
2. Version Control:
○ Use Git for version control. Submit an accessible link to your GitHub/GitLab
repository for the assignment.
3. Evaluation Criteria:
○ Code quality, readability, and comments.
○ Problem-solving and design approach.
○ Adherence to instructions and best practices.
○ Functionality of the solution.
4. Submission:
Email your completed assignment to [
[email protected]] with the
subject line: "Assignment Submission - Software Development Trainee".
Choose One Role and Complete the Task Below:
1. Backend Development Task
Create a REST API service to manage a simple to-do list application with the following features:
● Endpoints:
1. POST /tasks: Create a new task with title (string), description (string), and
status (default: "pending").
2. GET /tasks: Fetch all tasks.
3. GET /tasks/:id: Fetch a task by its ID.
4. PUT /tasks/:id: Update the task status (pending, in-progress, completed).
5. DELETE /tasks/:id: Delete a task by its ID.
● Use any backend framework you are comfortable with (e.g., Node.js/Express,
Python/FastAPI, Golang/Gin).
● Data should be stored in a database (SQL or NoSQL). For simplicity, you may use an
in-memory database like SQLite or a JSON file.
2. Frontend Development Task
Build a responsive web application for a to-do list manager with the following features:
● Pages:
1. Home Page: Display a list of tasks with their title, description, and status.
2. Add Task Page: Allow the user to create a new task.
3. Edit Task Page: Allow the user to update a task's status.
● Use React.js or Next.js.
● Implement state management using Redux Toolkit or Context API.
● Make REST API calls to a dummy API (use jsonplaceholder.typicode.com/todos) to
fetch and update task data.
3. Mobile Development Task
Build a mobile application for managing a to-do list with the following features:
● Screens:
1. Task List Screen: Display all tasks.
2. Add Task Screen: Allow the user to create a new task.
3. Update Task Screen: Allow the user to edit a task's status.
● Use React Native.
● Mock API calls using a local JSON file or jsonplaceholder.typicode.com/todos.
● Ensure the application is responsive and visually appealing.
Additional Notes:
● Bonus (Optional):
○ For Backend: Add JWT-based authentication for API endpoints.
○ For Frontend: Use a design system like Material-UI or TailwindCSS.
○ For Mobile: Use animations or native device features (e.g., camera or
notifications).
● Support:
If you face any issues or need clarification, email us at
[[email protected]].