Full-stack workshop management solution with .NET 8 backend (WebAPI + EF Core) and Angular 19 frontend.
- ๐ JWT authentication with refresh tokens
- ๐ค User registration with async validation
- ๐ธ Profile image upload
- โ๏ธ User settings and preferences
- ๐ Password reset flow
- ๐ฅ 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
- ๐ Real-time statistics
- ๐ฐ Revenue tracking (daily, monthly, yearly)
- ๐ Low stock alerts
- ๐ Recent orders timeline
- ๐ Dark theme with gradients
- โจ Smooth animations and transitions
- ๐ฑ Fully responsive design
- โฟ Accessibility features
- ๐ญ Glassmorphism effects
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
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)
- .NET SDK 8.0+
- Node.js 18+ & npm 9+
- Docker (for SQL Server on Linux)
- Git
# 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# 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:5039MechaSoftApp/
โโโ 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
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 passwordGET /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 imageGET /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 customerSimilar CRUD endpoints for each module.
/ โ Landing page
/login โ User login
/register โ User registration
/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
| Role | Access Level |
|---|---|
| Owner | Full access to all modules |
| Admin | Management features + reports |
| Employee | Daily operations (orders, inspections) |
| Customer | Portal access (future feature) |
- SQL Server 2022 (Docker on Linux)
- Entity Framework Core 8
- Code-First 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{
"ConnectionStrings": {
"MechaSoftCS": "Server=localhost,1433;Database=DV_RO_MechaSoft;User Id=sa;Password=MechaSoft@2024!;TrustServerCertificate=True;MultipleActiveResultSets=true"
}
}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!"
}- .NET 8
- ASP.NET Core (Minimal API)
- Entity Framework Core 8
- MediatR (CQRS pattern)
- FluentValidation
- JWT Bearer Authentication
- BCrypt.Net
- Angular 19
- TypeScript 5
- TailwindCSS
- SCSS
- RxJS
- Angular Router
- HTTP Interceptors
- Docker (SQL Server)
- Git
- ESLint
- Prettier
cd MechaSoft.WebAPI
dotnet watch run
# API: http://localhost:5039
# Swagger: http://localhost:5039/swaggercd Presentation/MechaSoft.Angular
npm install
npm start
# App: http://localhost:4200# Frontend linting
cd Presentation/MechaSoft.Angular
npm run lint
# Format code
npm run formatMechaSoft.WebAPI/appsettings.json- Production settingsMechaSoft.WebAPI/appsettings.Development.json- Development settingsPresentation/MechaSoft.Angular/angular.json- Angular configuration.eslintrc.json- Linting rules.prettierrc- Code formatting rules
README.md- This filePresentation/MechaSoft.Angular/ESTRUTURA.md- Angular structurePresentation/MechaSoft.Angular/FLUXO_NAVEGACAO.md- Navigation flowAPI_TESTS.http- API test collection
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
Modern navigation with:
- Dropdown menu
- Profile with avatar
- Notifications
- Global search
- Fully responsive
- JWT tokens with refresh
- Role-based access control
- Password hashing (BCrypt)
- Email/username validation
- Profile image upload
- Real-time statistics
- Revenue tracking
- Low stock alerts
- Recent activity feed
# Check if SQL Server is running
docker ps | grep sqlserver
# Restart SQL Server
docker restart mechasoft-sqlserver
# View logs
docker logs mechasoft-sqlserver# Clear node_modules
cd Presentation/MechaSoft.Angular
rm -rf node_modules package-lock.json
npm install
npm start# 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- Initial Bundle: 475 KB (117 KB gzipped)
- Lazy Chunks: ~250 KB total
- Optimized for production with tree shaking
- โ Lazy loading modules
- โ Code splitting
- โ AOT compilation
- โ Production build optimization
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
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
This project is private and proprietary.
- Developer: Rick Sanchez
- Project: MechaSoft Workshop Management System
- Version: 3.0.0
- Last Updated: October 9, 2025
- Repository: https://github.com/Rick-Sanchez4/MechaSoftApp
- Issues: https://github.com/Rick-Sanchez4/MechaSoftApp/issues
- Documentation: See
/Presentation/MechaSoft.Angular/folder
- โ User authentication & authorization
- โ Customer & vehicle management
- โ Service order tracking
- โ Parts inventory
- โ Dashboard analytics
- โ Profile management
- โ Modern UI with animations
- ๐ฎ Customer portal
- ๐ฎ Real-time notifications
- ๐ฎ Dark/Light theme toggle
- ๐ฎ PWA support
- ๐ฎ Mobile app
- ๐ฎ Advanced reporting
- ๐ฎ Email notifications
- ๐ฎ PDF invoice generation
For issues, questions, or suggestions, please open an issue on GitHub.
Made with โค๏ธ using .NET 8 and Angular 19