Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/anonymousknight07/secure-admin---role-based-access-control

Secure Admin is a Role-Based Access Control (RBAC) user interface designed to manage users, roles, and permissions dynamically.
https://github.com/anonymousknight07/secure-admin---role-based-access-control

admin-dashboard corporate-functions database database-management react tailwindcss user-interface user-management vite

Last synced: 20 days ago
JSON representation

Secure Admin is a Role-Based Access Control (RBAC) user interface designed to manage users, roles, and permissions dynamically.

Awesome Lists containing this project

README

        

![image](https://github.com/user-attachments/assets/56b5a043-67ce-4d39-bb0b-fa232b047300)
# Secure Admin - Role-Based Access Control (RBAC) Dashboard

Secure Admin is a **Role-Based Access Control (RBAC)** user interface designed to manage users, roles, and permissions dynamically. It showcases a secure, functional, and visually appealing dashboard with dark and light themes. The project includes user and role management, permission handling, and dynamic visualizations for system monitoring.

---

## **Objective**

This project evaluates creativity, technical skills, and problem-solving abilities in building a fully functional RBAC dashboard. The focus is on creating a secure and efficient UI for managing users, roles, and permissions, integrated with mock API functionalities.

---

## **Core Features**

### 1. **User Management**
- View and manage users in the system.
- Add, edit, or delete users seamlessly.
- Assign roles and manage user status (Active/Inactive).

### 2. **Role Management**
- Define, edit, and delete roles.
- Assign permissions (Read, Write, Delete, etc.) or custom attributes to roles.

### 3. **Dynamic Permissions**
- Assign or modify permissions dynamically for roles.
- Display and manage permissions with a clear, user-friendly UI.

### 4. **Custom API Simulation**
- Mock API calls for CRUD operations on users and roles.
- Simulate server responses to validate UI functionality.

### 5. **Dashboard Analytics**
- Dynamic graphs to visualize system trends, including users, roles, and permissions over time.
- Themed interface with both **dark** and **light modes**.

---

## **Technologies Used**

This project leverages a modern tech stack for optimal performance and a seamless developer experience:

### **Frontend**
- **React**: For building the interactive UI.
- **Tailwind CSS**: For styling and theming.
- **Radix UI**: For accessible and customizable UI components.
- **Tremor**: For dynamic data visualization.
- **React Hook Form**: For efficient form management.
- **Zod**: For schema-based form validation.
- **Lucide Icons**: For intuitive iconography.

### **State Management**
- **Zustand**: Lightweight state management for managing global state.

### **Build Tools**
- **Vite**: For fast builds and hot module replacement.
- **TypeScript**: For type safety and better developer experience.

### **Additional Tools**
- **Next Themes**: For implementing dark and light modes.
- **Mock APIs**: For simulating server responses.

---

## **Project Setup**

### Prerequisites
Ensure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn package manager

### Steps to Run Locally
1. Clone the repository:
```bash
git clone https://github.com/anonymousknight07/Secure-Admin---Role-Based-Access-Control.git

2. Install dependencies:
```bash
npm install
```

3. Start the development server:
```bash
npm run dev
```

4. Access the application at http://localhost:5173

## Usage
### Landing Page

- Provides an overview and entry point to the dashboard.

#### Dashboard
- Overview Tab: Displays total users, roles, permissions, and active sessions.
- Users Tab: Manage users and their associated roles.
- Roles Tab: Define and edit roles with permissions.
- Permissions Tab: Assign or update permissions for roles.

## Screenshots:
### Login page :
![image](https://github.com/user-attachments/assets/4b4a8ba5-2d1c-47a5-bd35-75aaae71740f)

### Dashboard :
![DarkTheme](https://github.com/user-attachments/assets/308b3c20-e8d8-4c8b-bcba-b17330c5df49)
![LightTheme](https://github.com/user-attachments/assets/01de087d-2df8-4101-a053-4130a6beea26)

### User management :
![image](https://github.com/user-attachments/assets/d445d346-fc33-4cf4-9f83-6c45d27a91a6)

### Role management :
![image](https://github.com/user-attachments/assets/f1cdc46f-2070-4020-b191-59f45a7e3f65)

### Permission management:
![image](https://github.com/user-attachments/assets/9843d404-48fe-4371-b2f3-2fde1104bbde)

## Folder Structure

```bash
src/
├── components/ # Reusable UI components
├── pages/ # Dashboard and landing page views
├── hooks/ # Custom React hooks
├── context/ # Global state and context providers
├── services/ # Mock API service and utilities
├── styles/ # Tailwind CSS configurations
└── App.tsx # Application entry point

```
## Acknowledgments
- Radix UI for accessible component primitives.
- Tremor for beautiful and responsive data visualizations.
- React Hook Form for simplifying form handling.
- Tailwind CSS for rapid and modern styling.

## Contact
For questions or support, feel free to reach out at [X](https://x.com/akshath_pandey).

![Logo](https://cdn.sanity.io/images/mnzfyx37/production/b41d3b494d876249a9e145a6f2b9a1e21b26e485-500x500.png)