Skip to content

Releases: C216-Distribuid-System-Project/to-do-list-backend

Release v1.0.1 — Database Refactor and Route Additions

26 Nov 19:46
02b9fe7

Choose a tag to compare

This release introduces a significant improvement to the backend architecture, including a full database refactor, restructuring of the API modules, and the addition of new routes essential for the To-Do List application developed for the C216 – Distributed Systems course.


1. Database Refactor (MySQL)

The database schema was redesigned to better support the separation of users, projects, and tasks, following relational modeling best practices.

Key changes:

  • Review and adjustment of the main tables: users, projects, tasks
  • Correction of foreign key relationships (1:N)
  • Standardization of required fields
  • Updated schema and seed files for consistent initialization

Documentation:

  • MySQL Docker Compose and instructions
    (see course documentation)
  • MySQL Dockerfile and SQL scripts
    (see project documentation)

Stick Wall (stick_wall)

New table added to the system.

Used to store quick notes, usually displayed on a post-it style bulletin board.

Field Type Description
id INT PRIMARY KEY AUTO_INCREMENT Unique identifier
user_id INT NOT NULL Note owner
name VARCHAR(255) NOT NULL Note title
text TEXT NOT NULL Note content
color VARCHAR(7) NOT NULL DEFAULT '#FFFF88' Hex color for the note
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP Creation date
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP Last update date

2. API Restructuring (FastAPI)

The backend codebase was reorganized into a more modular, maintainable, and scalable architecture.

Improvements:

  • Separation into models, schemas, modules, and routes
  • Standardized Pydantic schemas
  • Grouping of routes by domain (auth, projects, tasks)
  • Clearer responsibility boundaries across modules

3. New Routes Added

StickWall

Method Route Description
GET /stickwall List all StickWall notes of the user
POST /stickwall Create a new note
GET /stickwall/{id} Get details of a specific note
PUT /stickwall/{id} Update a specific note
DELETE /stickwall/{id} Delete a specific note

4. Docker Environment Updates

The Docker environment was enhanced to ensure stable execution between the API and MySQL services.

Changes:

  • Updated docker-compose.yml for improved orchestration
  • Consistent environment variables across containers
  • Internal service networking via DATABASE_URL
  • Improved volumes and data persistence
  • Dedicated Dockerfiles for API and Database

5. Test Environment Preparation (Pytest)

Foundational structure created for future automated tests, aligned with best practices from the course.


6. General Improvements

  • Updated naming conventions
  • Reorganized internal modules for clarity
  • Improved exception handling and HTTP responses
  • Updated database seed for development testing

Summary

Component Status
Database refactor Completed
API restructuring Completed
Task routes Added
Project routes Added
Authentication routes In progress
API ↔ MySQL integration Stable
Docker environment Updated
Test infrastructure Initialized

v1.0.0 – Core Routes Implementation and Filters Integration

20 Oct 12:25
fb7c88c

Choose a tag to compare

This is the first stable release of the To-Do List Backend, built with FastAPI and MySQL.
Version v1.0.0 introduces the main API routes for projects, tasks, and filters, along with a fully functional Dockerized environment for both the API and database.


New Features

Project Routes (/projects)

  • Full CRUD operations (GET, POST, PUT, DELETE)
  • Integrated with the MySQL database using SQLAlchemy
  • Code documentation and refactoring for clarity and maintainability

Task Routes (/tasks)

  • Complete CRUD endpoints for task management
  • Linked to users and projects through relational models
  • Support for due dates, reminders, and completion status

Filters and Relationships

  • Added filtering routes for projects and tasks
  • Integrated with user authentication to ensure secure access

Unit Tests

  • Added automated tests using a dedicated testing database
  • Validated core CRUD operations and relationships for users and authentication

Infrastructure

  • Docker Compose setup for service orchestration
    • Services: MySQL + FastAPI
    • Persistent volumes and service dependencies configured
  • API Dockerfile based on lightweight python:3.11-slim
  • MySQL Dockerfile includes initial schema and seed data loading

Documentation


Summary

This release delivers the essential foundations of the To-Do List API,
including project and task management, filtering capabilities,
and a production-ready Docker setup for streamlined local deployment.

v0.0.0 – Backend Initial Setup & Authentication

30 Sep 12:19
c0c6f02

Choose a tag to compare

Description

This release marks the first stable version of the To-Do List backend.
It includes the complete initial setup with Docker and Docker Compose, a fully configured MySQL database with seed data, and a modular FastAPI architecture.

Key Features

  • ✅ Authentication with JWT and secure password hashing
  • ✅ User, Project, and Task schemas and seed data
  • ✅ Dockerized environment (API + MySQL)
  • ✅ Initial automated tests for authentication routes
  • ✅ Documentation covering backend proposal, architecture, and Docker setup

Goal

Provide a solid foundation for future feature development and testing, ensuring scalability, maintainability, and secure user management from the very first release.