Marketivo
Marketivo is a modern, user-friendly e-commerce platform that supports product sales across different categories. Users can experience the full shopping flow, from browsing products to adding items to the cart and completing checkout. The project simulates core e-commerce processes with a clear and practical interface.
- Context
- Personal
- Category
- Web
- Period
- Jul 1, 2025 - Aug 1, 2025
Technologies
MySQL Java Spring Boot 3 Spring Security Spring Data JPA Multi Language Support RESTful API Lombok Spring Data REST Repository Pattern Pagination Angular 20 TypeScript RxJS NgRx PrimeNG Auth0 Nginx Proxy Manager Docker Docker Compose ESLint Stripe JWT Tokens Ngx Translate Facade Pattern Angular Reactive Forms HTTP Interceptors FluentValidationTS Cloudflare Custom Domain Ubuntu Server HTML CSS JavaScript Git GitHub
Links
Production marketivo.erengaygusuz.com.tr Repository (Frontend) github.com/erengaygusuz/marketivo-frontend Repository (Backend) github.com/erengaygusuz/marketivo-backend Docker Image (Frontend) hub.docker.com/r/erengaygusuz/marketivo-frontend Docker Image (Backend) hub.docker.com/r/erengaygusuz/marketivo-backend
Project Type
- The project is a full stack web application.
- The frontend was developed with Angular, and the backend was developed with Spring Boot 3.
- It is a personal e-commerce project.
Architecture / System Design
- The project consists of three main layers: frontend application, backend application, and database.
- The frontend is built with Angular using a component based architecture.
- NgRx is used for state management, and Facade Pattern encapsulates store access to reduce direct dependencies.
- The backend is developed with Spring Boot 3 and separated into readable layers such as dao and service.
- The structure aims to keep module dependencies low and leave room for future extension.
- MySQL is used as the database layer.
- The MySQL server runs as a Docker container in my own Ubuntu Server environment.
- The backend consumes the MySQL service through the same Docker network.
- An SSH tunnel is used to manage the database securely from the development environment.
- Server access is handled securely through private key and public key authentication.
Technologies Used
- Backend: Java, Spring Boot 3, Spring Security, Spring Data JPA, Spring Data REST, Lombok, RESTful API, Repository Pattern, Pagination
- Frontend: Angular 20, TypeScript, RxJS, NgRx, PrimeNG, Angular Reactive Forms, HTTP Interceptors, Ngx Translate
- Validation and security: Auth0, JWT Tokens, FluentValidationTS, Spring Security
- DevOps and deployment: Docker, Docker Compose, Docker Hub, Nginx Proxy Manager, Cloudflare, Custom Domain, Ubuntu Server
- Database: MySQL
- Payment: Stripe
- Code quality and tools: ESLint, Prettier, Git, GitHub
- Web fundamentals: HTML, CSS, JavaScript
Key Technical Details and Modules
- Applied a component based architecture on the frontend.
- Implemented centralized state management with NgRx.
- Used Facade Pattern to reduce direct dependency on the Store.
- Built a modern and user-friendly interface with PrimeNG.
- Integrated payments with Stripe.
- Managed authentication through Auth0.
- Added multi-language support on both backend and frontend.
- Managed form validation with FluentValidationTS.
- Added ESLint and Prettier support for developer experience.
- Created a container-based development and deployment flow with Docker and Docker Compose.
Participation and Timeline
- I developed the project independently.
- I took part in analysis, design, development, testing, deployment, and release processes from start to finish.
- The project was developed between July 2025 and August 2025.
Project Management / Team Structure
- Since this is a personal project, there is no separate team structure.
- I used Trello for task tracking and personal planning.
- Planned tasks, completed work, and improvement notes were tracked through Trello during development.
Personal Contributions and Responsibilities
- I am responsible for the full technical scope of the project.
- I handled the frontend, backend, database, deployment, and domain management processes myself.
- The application is currently published on my own physical server running Ubuntu Server.
- I manage the required Docker, network, domain, SSL, and deployment processes in my own development environment.
Deployment Information
- The project is packaged as Docker images and hosted on Docker Hub.
- The source code is versioned with Git and kept publicly available on GitHub.
- Deployment is handled through my own physical Ubuntu Server environment.
- Domain and DNS management are handled through Cloudflare.
- When needed, SSL certificates are managed through Let's Encrypt.