A comprehensive system for managing user access to software applications with role-based permissions.
├── backend/ # Node.js + Express backend
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── entities/ # TypeORM entities
│ │ ├── middleware/ # Auth and validation middleware
│ │ ├── routes/ # API routes
│ │ ├── services/ # Business logic
│ │ ├── utils/ # Helper functions
│ │ ├── app.ts # Express app setup
│ │ └── index.ts # Entry point
│ ├── .env.example # Environment variables template
│ ├── package.json # Dependencies
│ └── tsconfig.json # TypeScript configuration
├── frontend/ # React frontend
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── contexts/ # React contexts (Auth)
│ │ ├── pages/ # Page components
│ │ ├── services/ # API service functions
│ │ ├── types/ # TypeScript interfaces
│ │ ├── utils/ # Helper functions
│ │ ├── App.tsx # Main app component
│ │ └── index.tsx # Entry point
│ ├── package.json # Dependencies
│ └── tsconfig.json # TypeScript configuration
└── README.md # Project documentation
POST /api/auth/signup - Register a new user (default role: Employee)POST /api/auth/login - Authenticate and receive JWTGET /api/software - List all softwarePOST /api/software - Create new softwareGET /api/software/:id - Get software detailsPUT /api/software/:id - Update softwareDELETE /api/software/:id - Delete softwareGET /api/requests - List requests (filtered by role)POST /api/requests - Submit new access request (Employee)PATCH /api/requests/:id - Approve/reject request (Manager)DELETE /api/requests/:id - Delete requestcd backendnpm install.env.example to .env and configure your environment variablesnpm run migration:runnpm run devcd frontendnpm installnpm start