Pergunta de entrevista da empresa SleekFlow

Below is the take-home task I mentioned in interview process: # Sleekflow Full Stack Software Engineer Project **Objective:** Develop a scalable and well-designed TODO list web application that allows users to manage their TODOs, demonstrating your full stack development skills, API design expertise, and software engineering best practices. **Project Overview** 1. **TODO List Web Application** 1. *Backend API (C#)* 1. TODOs CRUD 1. Each TODO has: 1. Unique ID 2. Name 3. Description 4. Due Date 5. Status (e.g., Not Started, In Progress, Completed) 2. Filtering (e.g., by status, due date) 3. Sorting (e.g., by due date, status, name) 2. *Frontend UI* 1. Responsive design 2. User interface for managing TODOs (create, update, delete, filter, sort) 3. *Nice-to-have Features* 1. Additional attributes for each TODO (e.g., priority, tags) 2. User authentication and registration 3. Team features 1. Authorization (e.g., role-based access control) 2. Real-time collaboration (e.g., shared TODO lists, activity feeds) 4. DevOps (e.g., CI/CD pipeline, Docker, Kubernetes) 5. Architecture diagram 6. Any other improvements or features you'd like to add 2. **Design Requirements** 1. *Technical Design* 1. Adhere to SOLID principles 2. Use Test-Driven Development (TDD) 3. Ensure code and design consistency 2. *API Design* 1. Use clear and consistent naming conventions 2. Implement proper model mapping (e.g., DTOs, ViewModels) 3. *Documentation* 1. Include README with instructions for setup and usage 2. Document API endpoints and functionality 3. **Deliverables** 1. A GitHub repository containing your source code 2. A live demo of your application (optional) or docker-compose **Guidelines** 1. Use C# with ASP.NET Core for the backend API development. 2. Choose a suitable front-end framework or library (e.g., React, Angular, Vue.js). 3. Choose a suitable database for storing TODOs and user data (e.g., SQL Server, PostgreSQL, MongoDB). 4. Implement error handling and validations for API requests. 5. Write unit tests and integration tests for the core functionality (both backend and frontend). 6. Ensure your application can be easily run and tested locally.

Resposta da entrevista

Sigiloso

28 de nov. de 2023

I spent 20+ hours to do the task. And I have to self-learn ASP.NET Core in order to do the backend.