Releases: C216-Distribuid-System-Project/to-do-list-backend
Release v1.0.1 — Database Refactor and Route Additions
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.ymlfor 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
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
- Services:
- API Dockerfile based on lightweight
python:3.11-slim - MySQL Dockerfile includes initial schema and seed data loading
Documentation
- Project Architecture →
api_project_architecture.md - Docker Compose Guide →
docker_compose_documentation.md - MySQL Docker Setup →
mysql_docker_documentation.md - API Docker Guide →
api_docker_documentation.md - Backend Proposal →
backend_proposal_todo_list.md
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
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.