Welcome to WorkSpace, a cutting-edge application that integrates MongoDB and Opal to establish a robust Role-Based Access Control (RBAC) system. WorkSpace is a tool that improves workplace efficiency and security by providing managers, senior managers, and employees with customised permissions and seamless task management features.
-
Opal Integration: Utilizes Opal client-server architecture for scalable and efficient management of roles and permissions.
-
Open Policy Agent (OPA): Facilitates fine-grained access control and policy-based decision-making across the application, ensuring compliance and security.
-
Efficient Login Process: WorkSpace utilizes Opal's authentication system to verify user credentials securely. Upon entering their credentials, users are authenticated against predefined policies and permissions stored within Opal.
-
Role-Based Access Control (RBAC): Opal facilitates role management by assigning specific permissions to each user based on their role within the organization. This ensures that users only have access to the functionalities relevant to their responsibilities.
-
User-Friendly Interface: Simple and intuitive web interface.
- REGO: For writing and managing policies with Open Policy Agent (OPA).
- Express.js: A minimalist Node.js framework for building web applications and APIs.
- Docker: For containerizing the application, including Opal client and server.
- MongoDB: A NoSQL database for storing user credentials, roles, permissions, and other application data.
- Next.js: A React-based framework for building the frontend web application.
- JWT (JSON Web Tokens): For secure authentication and authorization, managing sessions across the application.
- Git: For storing policies and interacting with Opal for seamless policy updates and version control.
- Node.js and npm installed.
- Docker for creating containers.
- Git to pull the forked repo.
- As its Login Policy is linked to a repo, I will provide you with some username and password to test the project
- Username:-john_doe(employee),jane_smith(manager) and emma_wilson(senior_manager)
- Password:-Same as the Username
- Clone the Repository
git clone https://github.com/Aryan741x/WorkSpace.git
cd WorkSpace
- Install Dependencies
npm install
- Setup .env Go to .env file present inside the source directory
MONGODB_URI = "Put_Your_MongodbURI_Here"
- Run Docker
docker-compose up
- Run Backend Server(port:3001)
node server.js
- Deploy the Project
npm run dev
- Special Thanks to SSOC: Grateful for providing a platform to delve deeper into Opal, an incredible open-source software.
- Gratitude to the Permit.io/Opal developers for resources and support. Thank you also for providing the chance to take part in Quine Quest 13.
Feel free to dive into the project, explore the code. Happy coding!