A modern ERP (Enterprise Resource Planning) system built with high-performance technologies, focused on Inventory Management.
- Language: Go (1.25+)
- Framework: Fiber v2
- Database ORM: GORM (PostgreSQL)
- Authentication/Authorization:
- Dependency Injection: Dig
- Logging: Zap
- Dev Tooling: Air (Live reload)
- Framework: Nuxt 4 (Vue 3)
- UI Library: @nuxt/ui (Tailwind CSS 4)
- Authentication: nuxt-auth-utils
- Package Manager: pnpm
- Inventory Management:
- Stock Levels: Real-time monitoring of product quantities across warehouses.
- Stock Movements: Track inbound, outbound, and internal transfers.
- Stock Adjustments: Manual inventory corrections with reason tracking.
- Low Stock Alerts: Intelligent dashboard alerts for replenishment.
- Master Data Management:
- Manage Products, Categories, UOMs, Suppliers, and Warehouses.
- Modern UI/UX:
- Full-featured Dashboard with quick statistics and recent activity.
- Responsive design with dark/light mode support.
- Data-driven components based on
@nuxt/ui.
- RBAC & Security:
- Secure API routes with OIDC-based middleware.
- Role-based navigation and action control.
Ensure you have the following installed:
- Go (version 1.25 or higher)
- Node.js (LTS recommended)
- pnpm
- PostgreSQL
- Docker (Optional, for containerized setup)
This project uses Auth0 for Authentication. You need to configure an Application and an API:
- Regular Web Application:
- Create a Regular Web Application in Auth0.
- Allowed Callback URLs:
http://localhost:3000/auth/auth0. - Allowed Logout URLs:
http://localhost:3000.
- API:
- Create an API in Auth0.
- Identifier (Audience): e.g.,
http://localhost:8080.
AUTH0_CLIENT_ID=your-auth0-client-id
AUTH0_CLIENT_SECRET=your-auth0-client-secret
AUTH0_DOMAIN=your-auth0-domain
AUTH0_AUDIENCE=http://localhost:8080
DB_DSN=host=localhost user=postgres password=password dbname=erp port=5432 sslmode=disable
PORT=8080NUXT_OAUTH_AUTH0_CLIENT_ID=your-auth0-client-id
NUXT_OAUTH_AUTH0_CLIENT_SECRET=your-auth0-client-secret
NUXT_OAUTH_AUTH0_DOMAIN=your-auth0-domain
NUXT_OAUTH_AUTH0_AUDIENCE=http://localhost:8080
NUXT_OAUTH_AUTH0_REDIRECT_URL=http://localhost:3000/auth/auth0
NUXT_SESSION_PASSWORD=at-least-32-character-long-password
NUXT_SERVER_URL=http://localhost:8080-
Navigate to the backend directory:
cd backend -
Install Go dependencies:
go mod download
-
Run with hot reload (using Air):
go tool air
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
pnpm install
-
Run the development server:
pnpm dev
You can run the entire system using Docker Compose:
-
Create a
.envfile in the root directory with the corresponding environment variables. -
Run:
docker-compose up -d --build
.
├── backend/ # Go Backend API (Fiber + GORM)
│ ├── cmd/ # Entry point
│ ├── internal/ # Core business logic (Hexagonal-lite)
│ ├── routes/ # API Route definitions
│ └── configs/ # Middleware, DI, and Auth configs
├── frontend/ # Nuxt 4 Frontend
│ ├── app/ # Vue components, pages, and layouts
│ ├── server/ # Nuxt server utilities
│ └── public/ # Static assets
└── migrations/ # Database migrations
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request