To-Do Back-End Application

Back-end API endpoints
Project Overview
This To-Do application is a powerful backend-driven platform designed to help users manage their tasks efficiently. Built with Node.js, Express.js, and Sequelize, the application provides a robust system for organizing todos into categories, tracking their status, and managing user-specific data.

The application supports key functionalities such as adding, updating, and deleting tasks, with the ability to categorize tasks and track their completion status. Each task is associated with a user, ensuring personalized task management. The use of Sequelize ORM with a MySQL database enables seamless data handling, while authentication and user management are handled securely, leveraging services like bcrypt and Passport.js.

This project is a backend-only solution, focusing on providing a solid API for todo management. It includes comprehensive error handling, middleware support, and testing using Jest to ensure reliability and scalability. The application also features detailed API documentation, created using Swagger, to facilitate easy integration and usage.

Feel free to view the entire project on my GitHub: https://github.com/Chawastic/mar23ft-api-ca-Chawastic
Tech Stack
Backend: Node.js, Express.js, Sequelize, MySQL
Frontend: EJS, Bootstrap
Authentication: Passport.js, bcrypt, JSON WebToken
APIs: RESTful services, documented using Swagger
Middleware: Morgan, body-parser, cookie-parser, jsend, express-flash, dotenv
Session Management: Express-session
Error Handling: Http-errors
Additional: Swagger autogen
Testing: Jest
The admin functionality within the application is designed to efficiently manage and manipulate the database. Administrators can perform CRUD (Create, Read, Update, Delete) operations on various entities such as users, todos, categories, and statuses through a well-structured backend. This includes adding new categories or statuses, updating existing tasks, and deleting items, ensuring that operations are executed with integrity and that relationships between different models in the database are consistently maintained. The use of Sequelize ORM facilitates these operations while preserving data integrity. Additionally, the application provides features like search and filtering to help administrators manage large datasets effectively, enhancing the overall administrative experience.