Skip to content

Rick-Sanchez4/MechaSoftApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ง MechaSoft - Workshop Management System

Full-stack workshop management solution with .NET 8 backend (WebAPI + EF Core) and Angular 19 frontend.

.NET Angular TypeScript SQL Server


๐Ÿ“‹ Features

โœจ User Management

  • ๐Ÿ” JWT authentication with refresh tokens
  • ๐Ÿ‘ค User registration with async validation
  • ๐Ÿ“ธ Profile image upload
  • โš™๏ธ User settings and preferences
  • ๐Ÿ”‘ Password reset flow

๐Ÿš— Workshop Management

  • ๐Ÿ‘ฅ Customer management with history
  • ๐Ÿš™ Vehicle tracking and maintenance history
  • ๐Ÿ“ Service orders with status tracking
  • ๐Ÿ” Technical inspections scheduling
  • ๐Ÿ› ๏ธ Service catalog management
  • ๐Ÿ“ฆ Parts inventory with stock alerts

๐Ÿ“Š Dashboard & Analytics

  • ๐Ÿ“ˆ Real-time statistics
  • ๐Ÿ’ฐ Revenue tracking (daily, monthly, yearly)
  • ๐Ÿ“‰ Low stock alerts
  • ๐Ÿ“‹ Recent orders timeline

๐ŸŽจ Modern UI/UX

  • ๐ŸŒ™ Dark theme with gradients
  • โœจ Smooth animations and transitions
  • ๐Ÿ“ฑ Fully responsive design
  • โ™ฟ Accessibility features
  • ๐ŸŽญ Glassmorphism effects

๐Ÿ—๏ธ Architecture

Backend (.NET 8)

MechaSoft.WebAPI          # Minimal API endpoints
โ”œโ”€โ”€ MechaSoft.Application # CQRS (MediatR)
โ”œโ”€โ”€ MechaSoft.Domain      # Domain models
โ”œโ”€โ”€ MechaSoft.Data        # EF Core + Repositories
โ”œโ”€โ”€ MechaSoft.Security    # JWT & Authentication
โ””โ”€โ”€ MechaSoft.IoC         # Dependency Injection

Frontend (Angular 19)

Presentation/MechaSoft.Angular
โ”œโ”€โ”€ core/                 # Guards, Interceptors, Services
โ”œโ”€โ”€ shared/               # Reusable Components
โ””โ”€โ”€ components/           # Feature Modules
    โ”œโ”€โ”€ auth/            # Login, Register
    โ”œโ”€โ”€ landing/         # Public landing page
    โ”œโ”€โ”€ front-office/    # Management system
    โ””โ”€โ”€ back-office/     # Admin panel (future)

๐Ÿš€ Quick Start

Prerequisites

  • .NET SDK 8.0+
  • Node.js 18+ & npm 9+
  • Docker (for SQL Server on Linux)
  • Git

Setup & Run

Linux / macOS

# 1. Clone repository
git clone https://github.com/Rick-Sanchez4/MechaSoftApp.git
cd MechaSoftApp

# 2. Setup SQL Server (Docker)
./setup-sqlserver.sh

# 3. Start all services
./start-mechasoft.sh

# Access:
# - Frontend: http://localhost:4200
# - Backend:  http://localhost:5039

Windows

# 1. Clone repository
git clone https://github.com/Rick-Sanchez4/MechaSoftApp.git
cd MechaSoftApp

# 2. Setup database (requires SQL Server LocalDB or Express)
# Update connection string in MechaSoft.WebAPI/appsettings.Development.json

# 3. Run migrations
dotnet ef database update --project MechaSoft.Data --startup-project MechaSoft.WebAPI

# 4. Start backend
cd MechaSoft.WebAPI
dotnet run

# 5. Start frontend (new terminal)
cd Presentation\MechaSoft.Angular
npm install
npm start

# Access:
# - Frontend: http://localhost:4200
# - Backend:  http://localhost:5039

๐Ÿ—‚๏ธ Project Structure

MechaSoftApp/
โ”œโ”€โ”€ MechaSoft.WebAPI/         # ASP.NET Core API
โ”œโ”€โ”€ MechaSoft.Application/    # Business logic (CQRS)
โ”œโ”€โ”€ MechaSoft.Data/           # EF Core + Migrations
โ”œโ”€โ”€ MechaSoft.Domain/         # Domain models
โ”œโ”€โ”€ MechaSoft.Domain.Core/    # Shared interfaces
โ”œโ”€โ”€ MechaSoft.Security/       # JWT services
โ”œโ”€โ”€ MechaSoft.IoC/            # DI configuration
โ”œโ”€โ”€ Presentation/
โ”‚   โ””โ”€โ”€ MechaSoft.Angular/    # Angular 19 frontend
โ”œโ”€โ”€ setup-sqlserver.sh        # SQL Server setup (Linux)
โ”œโ”€โ”€ start-mechasoft.sh        # Start all services (Linux)
โ”œโ”€โ”€ stop-mechasoft.sh         # Stop all services (Linux)
โ””โ”€โ”€ API_TESTS.http            # API test collection

๐Ÿ”‘ API Endpoints

Authentication

POST   /api/accounts/register               # Register new user
POST   /api/accounts/login                  # Login
POST   /api/accounts/refresh-token          # Refresh JWT token
POST   /api/accounts/logout                 # Logout
POST   /api/accounts/change-password        # Change password
POST   /api/accounts/reset-password         # Reset password

Profile

GET    /api/accounts/profile                # Get user profile
POST   /api/accounts/check-email            # Check email availability
POST   /api/accounts/check-username         # Check username availability
GET    /api/accounts/suggest-username       # Get username suggestions
POST   /api/accounts/upload-profile-image   # Upload profile image

Customers

GET    /api/customers                       # List all customers
GET    /api/customers/{id}                  # Get customer by ID
POST   /api/customers                       # Create customer
PUT    /api/customers/{id}                  # Update customer
DELETE /api/customers/{id}                  # Delete customer

Vehicles, Service Orders, Parts, Services, Inspections

Similar CRUD endpoints for each module.


๐Ÿ—บ๏ธ Routes

Public Routes

/                    โ†’ Landing page
/login               โ†’ User login
/register            โ†’ User registration

Authenticated Routes (/app)

/app/dashboard       โ†’ Dashboard with statistics
/app/profile         โ†’ User profile
/app/settings        โ†’ User settings
/app/customers       โ†’ Customer management
/app/vehicles        โ†’ Vehicle management
/app/service-orders  โ†’ Service order management
/app/inspections     โ†’ Inspection scheduling
/app/services        โ†’ Service catalog
/app/parts           โ†’ Parts inventory

๐Ÿ” User Roles

Role Access Level
Owner Full access to all modules
Admin Management features + reports
Employee Daily operations (orders, inspections)
Customer Portal access (future feature)

๐Ÿ’พ Database

Technology

  • SQL Server 2022 (Docker on Linux)
  • Entity Framework Core 8
  • Code-First migrations

Migrations

# View migrations
dotnet ef migrations list --project MechaSoft.Data --startup-project MechaSoft.WebAPI

# Apply migrations
dotnet ef database update --project MechaSoft.Data --startup-project MechaSoft.WebAPI

# Create new migration
dotnet ef migrations add MigrationName --project MechaSoft.Data --startup-project MechaSoft.WebAPI

Connection String (Linux/Docker)

{
  "ConnectionStrings": {
    "MechaSoftCS": "Server=localhost,1433;Database=DV_RO_MechaSoft;User Id=sa;Password=MechaSoft@2024!;TrustServerCertificate=True;MultipleActiveResultSets=true"
  }
}

๐Ÿงช Testing

API Tests

Use API_TESTS.http file with REST Client extension for VS Code:

### Register User
POST http://localhost:5039/api/accounts/register
Content-Type: application/json

{
  "username": "john.doe",
  "email": "john@example.com",
  "password": "SecurePass123!"
}

### Login
POST http://localhost:5039/api/accounts/login
Content-Type: application/json

{
  "username": "john.doe",
  "password": "SecurePass123!"
}

๐Ÿ“ฆ Technologies

Backend

  • .NET 8
  • ASP.NET Core (Minimal API)
  • Entity Framework Core 8
  • MediatR (CQRS pattern)
  • FluentValidation
  • JWT Bearer Authentication
  • BCrypt.Net

Frontend

  • Angular 19
  • TypeScript 5
  • TailwindCSS
  • SCSS
  • RxJS
  • Angular Router
  • HTTP Interceptors

DevOps

  • Docker (SQL Server)
  • Git
  • ESLint
  • Prettier

๐Ÿ› ๏ธ Development

Backend

cd MechaSoft.WebAPI
dotnet watch run
# API: http://localhost:5039
# Swagger: http://localhost:5039/swagger

Frontend

cd Presentation/MechaSoft.Angular
npm install
npm start
# App: http://localhost:4200

Code Quality

# Frontend linting
cd Presentation/MechaSoft.Angular
npm run lint

# Format code
npm run format

๐Ÿ“ Important Files

Configuration

  • MechaSoft.WebAPI/appsettings.json - Production settings
  • MechaSoft.WebAPI/appsettings.Development.json - Development settings
  • Presentation/MechaSoft.Angular/angular.json - Angular configuration
  • .eslintrc.json - Linting rules
  • .prettierrc - Code formatting rules

Documentation

  • README.md - This file
  • Presentation/MechaSoft.Angular/ESTRUTURA.md - Angular structure
  • Presentation/MechaSoft.Angular/FLUXO_NAVEGACAO.md - Navigation flow
  • API_TESTS.http - API test collection

Scripts

  • setup-sqlserver.sh - Setup SQL Server (Linux)
  • start-mechasoft.sh - Start all services (Linux)
  • stop-mechasoft.sh - Stop all services (Linux)
  • build-mechasoft.sh - Build entire solution

๐ŸŽฏ Key Components

Navbar (707 lines of SCSS!)

Modern navigation with:

  • Dropdown menu
  • Profile with avatar
  • Notifications
  • Global search
  • Fully responsive

Authentication System

  • JWT tokens with refresh
  • Role-based access control
  • Password hashing (BCrypt)
  • Email/username validation
  • Profile image upload

Dashboard

  • Real-time statistics
  • Revenue tracking
  • Low stock alerts
  • Recent activity feed

๐Ÿ”ง Troubleshooting

SQL Server connection fails

# Check if SQL Server is running
docker ps | grep sqlserver

# Restart SQL Server
docker restart mechasoft-sqlserver

# View logs
docker logs mechasoft-sqlserver

Frontend won't start

# Clear node_modules
cd Presentation/MechaSoft.Angular
rm -rf node_modules package-lock.json
npm install
npm start

Database migration errors

# Check migration status
dotnet ef migrations list --project MechaSoft.Data --startup-project MechaSoft.WebAPI

# Reset database (WARNING: deletes all data!)
dotnet ef database drop --project MechaSoft.Data --startup-project MechaSoft.WebAPI --force
dotnet ef database update --project MechaSoft.Data --startup-project MechaSoft.WebAPI

๐Ÿ“Š Performance

Bundle Sizes

  • Initial Bundle: 475 KB (117 KB gzipped)
  • Lazy Chunks: ~250 KB total
  • Optimized for production with tree shaking

Features

  • โœ… Lazy loading modules
  • โœ… Code splitting
  • โœ… AOT compilation
  • โœ… Production build optimization

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ Commit Convention

We follow Conventional Commits:

feat: Add new feature
fix: Bug fix
docs: Documentation changes
style: Code style changes
refactor: Code refactoring
test: Add tests
chore: Build process or auxiliary tool changes

๐Ÿ“„ License

This project is private and proprietary.


๐Ÿ‘ฅ Team

  • Developer: Rick Sanchez
  • Project: MechaSoft Workshop Management System
  • Version: 3.0.0
  • Last Updated: October 9, 2025

๐Ÿ”— Links


๐ŸŽฏ Roadmap

Current (v3.0)

  • โœ… User authentication & authorization
  • โœ… Customer & vehicle management
  • โœ… Service order tracking
  • โœ… Parts inventory
  • โœ… Dashboard analytics
  • โœ… Profile management
  • โœ… Modern UI with animations

Planned

  • ๐Ÿ”ฎ Customer portal
  • ๐Ÿ”ฎ Real-time notifications
  • ๐Ÿ”ฎ Dark/Light theme toggle
  • ๐Ÿ”ฎ PWA support
  • ๐Ÿ”ฎ Mobile app
  • ๐Ÿ”ฎ Advanced reporting
  • ๐Ÿ”ฎ Email notifications
  • ๐Ÿ”ฎ PDF invoice generation

๐Ÿ“ž Support

For issues, questions, or suggestions, please open an issue on GitHub.


Made with โค๏ธ using .NET 8 and Angular 19

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •