This project is a simplified Identity and Access Management (IAM) system designed for learning and prototyping purposes. It allows you to manage users, groups, roles, and permissions with fine-grained access control.
- Users can be assigned to one or more groups.
- Groups have roles that define permissions.
- Roles specify CRUD (Create, Read, Update, Delete) permissions on modules.
- Users inherit permissions only through their group memberships.
- Full CRUD operations for all IAM entities via a React frontend.
- JWT-based authentication for secure API access.
- Node.js with Express.js
- SQLite (in-memory) database for simplicity
- Middlewares for validation and authentication
- JWT for secure token-based authentication
- Password hashing for secure storage
- React.js with React Router for navigation
- Redux Toolkit for state management (authentication & permissions)
- Axios for API communication
- Tailwind CSS for styling
- JWT stored in Redux store or
localStoragefor session management
demo-IAM.mp4
- run pnpm i
-set your .env
- add your DATABASE_URL and JWT_SECRET
- run npx prisma generate and npx prisma db push
- run npm run dev
- run pnpm i
- run npm run dev