https://github.com/ahmedabougabal/brainwisefullstackadmissiontask
This repo I created as per instructions sent to solve this FullStack admission task.
https://github.com/ahmedabougabal/brainwisefullstackadmissiontask
django-framework fullstack-development gitignore-templates interview-test javascript postgresql pycharm-jetbrains python3 reactjs virtualenv
Last synced: 2 months ago
JSON representation
This repo I created as per instructions sent to solve this FullStack admission task.
- Host: GitHub
- URL: https://github.com/ahmedabougabal/brainwisefullstackadmissiontask
- Owner: ahmedabougabal
- Created: 2024-12-07T16:00:47.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-13T20:46:00.000Z (over 1 year ago)
- Last Synced: 2025-03-30T04:26:57.417Z (about 1 year ago)
- Topics: django-framework, fullstack-development, gitignore-templates, interview-test, javascript, postgresql, pycharm-jetbrains, python3, reactjs, virtualenv
- Language: TypeScript
- Homepage:
- Size: 570 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# brainWiseFullStackAdmissionTask
[](https://github.com/yourusername/mernStackMilestoneProject_ITI) [](https://github.com/sindresorhus/awesome) [](https://github.com/yourusername/mernStackMilestoneProject_ITI)
## 🚧 Frontend Development in Progress 🚧
## Authentication & Authorization
✅ Login System Implementation
- ✅ Admin Login Page
- ✅ Employee Login Page
- ✅ JWT Token Management
- ✅ Authentication Context
- ✅ Protected Routes
- ✅ Role-Based Access Control
## Dashboard & Admin Features
✅ Admin Dashboard Structure
- ✅ Material-UI Integration
- ✅ Responsive Layout
- ✅ Navigation Components
- ✅ Error Handling
- ✅ Loading States
✅ Employee Management (still fixing frontend bugs with this context)
- ✅ Employee List View
- ✅ CRUD Operations
- ✅ Create Employee
- ✅ Read Employee Details
- ✅ Update Employee Information
- ✅ Delete Employee
- ✅ Form Validation
- ✅ Success/Error Notifications
## Employee Features (fixing bugs)
✅ Employee Profile
- ✅ Profile View
- ✅ Personal Information Display
- ✅ Employment Details
## 🛠 Technical Implementation
✅ Project Structure
- ✅ Component Organization
- ✅ Custom Hooks
- ✅ Context Management
- ✅ Utility Functions
✅ API Integration (done and well-documented)
- ✅ Axios Configuration
- ✅ API Services
- ✅ Error Handling
- ✅ Response Interceptors
✅ Routing
- ✅ React Router Setup
- ✅ Protected Routes
- ✅ Role-Based Navigation
- ✅ Route Guards
## UI/UX Components
✅ Material-UI Implementation (react 19 had conflicts with this package so I used React 18.3)
- ✅ Theme Configuration
- ✅ Responsive Design
- ✅ Form Components
- ✅ Data Tables
## State Management
✅ Context API Implementation
- ✅ Authentication State
- ✅ User Context
- ✅ Loading States
- ✅ Error States
## Infrastructure
✅ Development Environment
- ✅ TypeScript Configuration
- ✅ ESLint Setup
- ✅ Project Structure
- ✅ Code Organization
---
## Not yet Implemented. . .
### Company Management ❌
- **List Companies Page**: Not implemented
- **View Company Page**: Not implemented
- **Edit and Delete Functionality**: Not implemented
### Department Management ❌
- **List Departments Page**: Not implemented
- **View Department Page**: Not implemented
- **Edit and Delete Functionality**: Not implemented
### Employee Management 🟡
- **List Employees Page**: Partially implemented (available in Dashboard)
- **Create Employee Page**: Not implemented
- **Edit Employee Page**: Not implemented
- **View Employee Page**: Implemented (via `EmployeeProfile` component)
### User Account Management (Bonus) 🟡
- **Edit User Account Page**: Not found
- **View User Account Page**: Partially implemented (via `EmployeeProfile`)
### Summary Dashboard (Bonus) 🟡
- **Basic Dashboard Structure**: Implemented
- **Analytics Summary**: not implemented
### UI Requirements 🟡
- **Navigation Between Sections**: Partially implemented
- **Clean and Organized UI**: Implemented (using Material-UI)
- **Responsive Design**: Implemented
### Validations 🟡
- **Required Fields Validation**: Implemented (in login forms)
- **Email and Mobile Number Format Validation**: Partially implemented
- **Department-Company Relationship Validation**: Not implemented
- **Error Handling and Messages**: Partially implemented
---
## Let's Get You Started to Run This Project Locally
To clone this repository and set it up locally, use the following command:
```bash
git clone git@github.com:ahmedabougabal/brainWiseFullStackAdmissionTask.git
```
---
> **Backend Setup and PostgreSQL Configuration for BrainWise Task**
---
## ⚙️ Backend Setup and 🐘 PostgreSQL Configuration
> **Note**: The username, password, and database name provided in this example are placeholders and not the actual credentials.
>
To set up the backend and PostgreSQL database for this project, follow these steps:
1. Install dependencies: `pip install -r requirements.txt`
2. **__(note : ensure you are in the directory 'backend' before executing the following commands)__**.
3. Apply migrations:
`python manage.py makemigrations departments accounts employees companies`
`python manage.py migrate`
4. Load initial data:
`python manage.py loaddata fixtures/01_users.json`
`python manage.py loaddata fixtures/02_companies.json`
`python manage.py loaddata fixtures/03_departments.json`
`python manage.py loaddata fixtures/04_employees.json`
5. On Bash/Zsh CLI login to psql db as a root : *__sudo -u postgres psql__*
6. Create a PostgreSQL user with permissions:
`CREATE USER usernameOfYourChoice WITH PASSWORD '*******' CREATEDB;`
7. Create a database with the user as the owner:
`CREATE DATABASE myBrainWiseTesting_db WITH OWNER = brainWiseAlpha;`
8. Connect to the database: `\c myBrainWiseTesting_db`
9. Grant all privileges:
`GRANT ALL PRIVILEGES ON DATABASE myBrainWiseTesting_db TO brainWiseAlpha;`
`GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO brainWiseAlpha;`
`GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO brainWiseAlpha;`
`GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO brainWiseAlpha;`
10. Grant schema usage: `GRANT ALL ON SCHEMA public TO brainWiseAlpha;`
---
# [My API Testing ==> **_Click me_** to headover to my **POSTMAN** public workspace and view all my endpoints listed below 👨💻 ](https://www.postman.com/golden-noobie/brainwise-admission-api-testing-by-ahmed-abou-gabal/collection/gyjljwr/brainwise-admission-api-testing?action=share&creator=38508690)








**_Error handling as Auth is required_**






