Skip to content

Fullstack Product Management System built with Node.js, Express, Prisma (MySQL) and React. Clean Architecture & Dockerized.

License

Notifications You must be signed in to change notification settings

CFBruna/fullstack-product-manager

Repository files navigation

πŸ“¦ Fullstack Product Management System

Node.js React TypeScript Docker Coverage Architecture

⚠️ LICENSE WARNING

This software is the proprietary property of Bruna Menezes. Access is granted for technical evaluation and recruitment purposes only.

πŸ›‘ Commercial use, modification, or distribution is strictly prohibited.

A robust, enterprise-grade Product Management System engineered with SOLID principles and Clean Architecture. This project goes beyond the standard CRUD requirements to demonstrate capabilities in building scalable, secure, and maintainable software.

πŸš€ Live Demo: https://product-manager.brunadev.com

Production Access Points:

πŸ“Έ Preview

Login & Hint

Dashboard & Product List

Delete Confirmation

✨ Key Features

  • Authentication: Secure Login/Register with JWT & BCrypt.
  • Product Management: Full CRUD (Create, Read, Update, Delete) with validation.
  • Responsive UI: Optimized layout for both Desktop (Data Tables) and Mobile (Cards).
  • Security: Protected routes, JWT Interceptors, and CORS configuration.

πŸ—οΈ Architecture & Engineering

This project implements a strict separation of concerns, ensuring code maintainability and testability.

Backend (Clean Architecture)

The API Layer is decoupled from business logic:

  1. Controllers (src/controllers): Handle HTTP requests/responses and Zod validation.
  2. Services (src/services): Contain business rules and data processing (Authentication, CRUD logic).
  3. Repositories (src/repositories): Strict Data Access Layer using Prisma ORM.

Frontend (Mobile-First)

  • Responsive Strategy: Dual-layout system (Table for Desktop, Cards for Mobile) implemented via TailwindCSS utilities (hidden md:block).
  • State Management: React Context API + localStorage persistence for secure Session Handling.
  • Security: Centralized Axios interceptors for handling Bearer Tokens and global error boundaries.

πŸ“Š Quality Assurance (Verified)

Scope Framework Coverage Details
Backend Jest + Supertest ~98% Comprehensive Unit Testing covering Auth, Product flows, and Error Middleware.
Frontend Vitest + RTL ~94% Unit Tests for Components, Forms, and Contexts. 100% coverage on core lists.

πŸš€ Tech Stack

Backend

  • Runtime: Node.js 20 + TypeScript 5
  • Framework: Express.js (Clean Architecture)
  • Database: MySQL 8 + Prisma ORM
  • Auth: JWT + BCrypt
  • Validation: Zod
  • Documentation: Swagger/OpenAPI v3

Frontend

  • Framework: React 19 + Vite
  • Styling: TailwindCSS
  • State Management: React Hooks + Context API
  • Testing: Vitest + React Testing Library

DevOps

  • Containerization: Docker & Docker Compose (Multi-stage builds node:20-slim)
  • Orchestration: NPM Workspaces (Root scripts)

πŸƒβ€β™‚οΈ How to Run

πŸ” Admin Credentials

The system comes pre-seeded with an admin user for reviewing restricted features (Edit/Delete):

  • User: admin@teste.com
  • Pass: 123456

πŸ’» Development Setup (Hybrid Mode)

We utilize a Hybrid Workflow for the best Developer Experience (DX):

  • Infrastructure (MySQL): Runs in Docker (Isolated & Consistent).
  • Applications (Front/Back): Run on Host (Faster Hot-Reload & Debugging).

Step 1: Clone Repository

git clone https://github.com/CFBruna/fullstack-product-manager.git
cd fullstack-product-manager

Step 2: Start Infrastructure

Start the Database services using Docker:

docker compose up -d

Services Started:

  • MySQL Database: Port 3306
  • Adminer (DB GUI): http://localhost:8080 (System: MySQL, Server: db, User: root, Pass: root)

Step 3: Setup Application

In a new terminal, use the following commands to setup the environment and database:

# 1. Install Dependencies
npm install

# 2. Setup Environment Variables
cp backend/.env.example backend/.env

# 3. Setup Database (Run one by one)
cd backend
npx prisma migrate dev
npx prisma db seed
cd ..

# 4. Start Applications
npm run dev

Access Points:


πŸ›  Developer Workflow & Commands

This monorepo uses NPM workspaces-style root scripts for seamless management.

# Run ALL Tests (Backend Integration + Frontend Unit)
npm test

# Generate Coverage Reports
npm run test:coverage

# Run Linting (ESLint) - Zero Tolerance Policy
npm run lint

Copyright Β© 2025 Bruna Menezes. All Rights Reserved.

About

Fullstack Product Management System built with Node.js, Express, Prisma (MySQL) and React. Clean Architecture & Dockerized.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published