Skip to content

This project is aimed at creating a To-Do backend application

Notifications You must be signed in to change notification settings

chatzijohn/todo-app-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Overview

This project is aimed at creating a To-Do backend application that connects to a PostgreSQL database using Sequelize, a popular Object-Relational Mapping (ORM) library for Node.js. The primary goal is to build a RESTful API that allows interaction with To-Do data, enabling Create, Read, Update, and Delete (CRUD) operations. The project serves as an educational journey to learn the fundamentals of developing CRUD applications.

Key Components and Features

Sequelize

  • ORM for Database Interaction: Sequelize simplifies database interaction by providing an object-oriented interface for working with databases. It abstracts the underlying SQL queries, making it easier to handle database operations.

PostgreSQL

  • Relational Database: PostgreSQL is chosen as the database system, offering robust support for structured data storage and retrieval. It's a popular choice for applications that require data integrity and relational capabilities.

RESTful API

  • HTTP Endpoints: The application provides a set of HTTP endpoints that follow RESTful principles for performing CRUD operations on To-Do items.
  • Endpoints Include: Creating new To-Do items, retrieving existing items, updating item details, and deleting items.

Learning Objectives

  • CRUD Operations: Gain hands-on experience in implementing Create, Read, Update, and Delete operations in a backend application.
  • API Development: Learn how to design and create HTTP endpoints that can be called from the frontend to interact with the application's data.
  • Database Integration: Understand how to connect and interact with a relational database using Sequelize.
  • Project Structure: Explore best practices for organizing the project's code, including the directory structure, configuration management, and model associations.

Directory Structure

The project directory structure is organized to maintain a clean and modular codebase. Here's an overview of the key directories and their purposes:

project-root/
├── node_modules/
├── src/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── services/
│ ├── app.js
│ ├── errorHandler.ts
├── tests/
│ ├── unit/
│ ├── integration/
├── public/
├── logs/
├── .env
├── .gitignore
├── package.json
├── tsconfig.json
├── sequelize/
│ ├── config/
│ ├── migrations/
│ ├── seeders/
├── .sequelizerc

The directory structure is designed to maintain a well-organized codebase and follows best practices for structuring a Node.js application with Sequelize and Express.

Future Enhancements

As I continue to work on this project, I want to consider implementing the following enhancements:

  • User Authentication: Add user authentication and authorization to protect user-specific data.
  • Task Categories: Introduce the concept of task categories or tags to organize and categorize tasks.
  • Frontend Integration: Develop a frontend application (e.g., using React or Vue.js) to interact with the RESTful API.

About

This project is aimed at creating a To-Do backend application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published