"Travel, Record, Live" — A robust relational database system designed to manage travel experiences, user interactions, and memories.
This project was developed for the Database Systems course at the University of Minho. The goal was to design and implement a complete SQL-based solution for NOMÁLIA, a digital platform dedicated to world travelers. It was developed in collaboration with @t3r3s-a, @svmarques and @apatriciamachado.
The system handles everything from user registration and trip logging to social interactions like comments and a localized "points" reward system.
- Database: MySQL
- Modeling: EER (Enhanced Entity-Relationship) Modeling
- Business Logic: Stored Procedures, Triggers, and Functions
- Security: Role-Based Access Control (RBAC) and SHA-256 Password Encryption
- Automation: Shell Scripting for maintenance (Backups)
- /model: EER Diagrams and relational schemas.
- /scripts: Core SQL scripts (DDL, Logic, Roles).
- /data: Seed data for testing and environment setup.
- /queries: Functional requirement tests and interaction examples.
- /automation: Bash scripts for database management.
- /docs: Technical documentation and final report.
Implemented two distinct access levels:
- admistrador: Full system control.
- utilizador: Standard interaction permissions.
- Schema: Run
scripts/creation.sqlto build the tables. - Business Logic: Run
scripts/procedures_functions_triggers.sqlto load procedures and triggers. - Security: Run
scripts/roles.sqlto set up user roles and access permissions (RBAC). - Data: Run
data/povoamento.sqlto populate the database with sample data. - Testing: Run the examples in
queries/queries.sqlto verify the system. (Optional) To perform a manual backup, executebash automation/backup_nomalia.shin your terminal.