Web

Personal Portfolio

Full-stack application built as a personal portfolio, highlighting architectural design, automated test coverage, and production-ready deployment.

This portfolio was developed to demonstrate my technical competencies and my ability to build a complete application, from conception to production deployment.
The project was built using Ruby on Rails as a full-stack framework, following the MVC architectural pattern. The frontend is integrated directly within Rails, leveraging Hotwire (Turbo and Stimulus) to provide dynamic interactions without requiring a separate SPA.
At the data layer, I used PostgreSQL as the relational database, with schema versioning managed through migrations. The domain modeling includes entities such as User, Skill, and Project, with properly defined relationships, validations, and data integrity rules.
The application is fully containerized with Docker, ensuring environment consistency and portability. Deployment is performed on Amazon Web Services, using Amazon EC2 instances within the Free Tier limitations. The Continuous Integration (CI) process is automated, while Continuous Deployment (CD) is handled manually using Kamal.
Throughout the development process, I applied Clean Code and SOLID principles, prioritizing organization, readability, and maintainability. The automated test suite was implemented with Minitest, covering models, controllers, components, and system tests.
Currently, the project maintains 95.28% line coverage, with 135 runs and 280 assertions, ensuring high reliability and reducing regression risks.

Administrative Area


The system includes a restricted area responsible for managing the content displayed in the portfolio. Within this interface, it is possible to perform full CRUD (Create, Read, Update, Delete) operations for the Skill and Project entities, enabling dynamic updates to the frontend content.
The implementation follows the Rails MVC pattern, incorporating validations, access control, and automated test coverage to ensure data integrity and operational security.

Skills Management

Interface for creating, editing, and removing skills, including:
  • Presence and consistency validations
  • User-facing visual feedback
  • Dynamic updates without full page reload using Turbo Frames

Projects Management

Administrative panel for managing the projects displayed in the portfolio, including:
  • Association with Skills (relational modeling)
  • Visibility control
  • Simplified organization and maintenance

Technologies

Ruby on RailsPostgreSQLAWS