{"id":22743082,"url":"https://github.com/ahmedabougabal/brainwisefullstackadmissiontask","last_synced_at":"2026-04-11T12:06:31.062Z","repository":{"id":267023765,"uuid":"900006391","full_name":"ahmedabougabal/brainWiseFullStackAdmissionTask","owner":"ahmedabougabal","description":"This repo I created as per instructions sent to solve this FullStack admission task.  ","archived":false,"fork":false,"pushed_at":"2024-12-13T20:46:00.000Z","size":584,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T04:26:57.417Z","etag":null,"topics":["django-framework","fullstack-development","gitignore-templates","interview-test","javascript","postgresql","pycharm-jetbrains","python3","reactjs","virtualenv"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahmedabougabal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-07T16:00:47.000Z","updated_at":"2024-12-13T20:45:29.000Z","dependencies_parsed_at":"2024-12-07T19:36:31.834Z","dependency_job_id":null,"html_url":"https://github.com/ahmedabougabal/brainWiseFullStackAdmissionTask","commit_stats":null,"previous_names":["ahmedabougabal/brainwisefullstackadmissiontask"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedabougabal%2FbrainWiseFullStackAdmissionTask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedabougabal%2FbrainWiseFullStackAdmissionTask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedabougabal%2FbrainWiseFullStackAdmissionTask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedabougabal%2FbrainWiseFullStackAdmissionTask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmedabougabal","download_url":"https://codeload.github.com/ahmedabougabal/brainWiseFullStackAdmissionTask/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246277349,"owners_count":20751548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django-framework","fullstack-development","gitignore-templates","interview-test","javascript","postgresql","pycharm-jetbrains","python3","reactjs","virtualenv"],"created_at":"2024-12-11T01:16:19.500Z","updated_at":"2026-04-11T12:06:31.031Z","avatar_url":"https://github.com/ahmedabougabal.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# brainWiseFullStackAdmissionTask\n\n\n[![Project Status](https://img.shields.io/badge/status-Under%20Construction-yellow)](https://github.com/yourusername/mernStackMilestoneProject_ITI)  [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)  [![Deadline](https://img.shields.io/badge/deadline-12/12/2024-red)](https://github.com/yourusername/mernStackMilestoneProject_ITI)\n\n\n\n\n## 🚧 Frontend Development in Progress 🚧\n##  Authentication \u0026 Authorization\n✅ Login System Implementation\n  - ✅ Admin Login Page\n  - ✅ Employee Login Page\n  - ✅ JWT Token Management\n  - ✅ Authentication Context\n  - ✅ Protected Routes\n  - ✅ Role-Based Access Control\n\n## Dashboard \u0026 Admin Features\n✅ Admin Dashboard Structure\n  - ✅ Material-UI Integration\n  - ✅ Responsive Layout\n  - ✅ Navigation Components\n  - ✅ Error Handling\n  - ✅ Loading States\n\n✅ Employee Management (still fixing frontend bugs with this context)\n  - ✅ Employee List View\n  - ✅ CRUD Operations\n    - ✅ Create Employee\n    - ✅ Read Employee Details\n    - ✅ Update Employee Information\n    - ✅ Delete Employee\n  - ✅ Form Validation\n  - ✅ Success/Error Notifications\n\n##  Employee Features (fixing bugs)\n✅ Employee Profile\n  - ✅ Profile View\n  - ✅ Personal Information Display\n  - ✅ Employment Details\n\n## 🛠 Technical Implementation\n✅ Project Structure\n  - ✅ Component Organization\n  - ✅ Custom Hooks\n  - ✅ Context Management\n  - ✅ Utility Functions\n\n✅ API Integration (done and well-documented)\n  - ✅ Axios Configuration\n  - ✅ API Services\n  - ✅ Error Handling\n  - ✅ Response Interceptors\n\n✅ Routing\n  - ✅ React Router Setup\n  - ✅ Protected Routes\n  - ✅ Role-Based Navigation\n  - ✅ Route Guards\n\n## UI/UX Components\n✅ Material-UI Implementation (react 19 had conflicts with this package so I used React 18.3)\n  - ✅ Theme Configuration\n  - ✅ Responsive Design\n  - ✅ Form Components\n  - ✅ Data Tables\n\n## State Management\n✅ Context API Implementation\n  - ✅ Authentication State\n  - ✅ User Context\n  - ✅ Loading States\n  - ✅ Error States\n\n## Infrastructure\n✅ Development Environment\n  - ✅ TypeScript Configuration\n  - ✅ ESLint Setup\n  - ✅ Project Structure\n  - ✅ Code Organization\n\n\n---\n## Not yet Implemented. . .   \n\n### Company Management ❌  \n- **List Companies Page**: Not implemented  \n- **View Company Page**: Not implemented  \n- **Edit and Delete Functionality**: Not implemented  \n\n### Department Management ❌  \n- **List Departments Page**: Not implemented  \n- **View Department Page**: Not implemented  \n- **Edit and Delete Functionality**: Not implemented  \n\n### Employee Management 🟡  \n- **List Employees Page**: Partially implemented (available in Dashboard)  \n- **Create Employee Page**: Not implemented  \n- **Edit Employee Page**: Not implemented  \n- **View Employee Page**: Implemented (via `EmployeeProfile` component)  \n\n### User Account Management (Bonus) 🟡  \n- **Edit User Account Page**: Not found  \n- **View User Account Page**: Partially implemented (via `EmployeeProfile`)  \n\n### Summary Dashboard (Bonus) 🟡  \n- **Basic Dashboard Structure**: Implemented  \n- **Analytics Summary**: not implemented  \n\n### UI Requirements 🟡  \n- **Navigation Between Sections**: Partially implemented  \n- **Clean and Organized UI**: Implemented (using Material-UI)  \n- **Responsive Design**: Implemented  \n\n### Validations 🟡  \n- **Required Fields Validation**: Implemented (in login forms)  \n- **Email and Mobile Number Format Validation**: Partially implemented  \n- **Department-Company Relationship Validation**: Not implemented  \n- **Error Handling and Messages**: Partially implemented  \n\n\n---\n## Let's Get You Started to Run This Project Locally\n\nTo clone this repository and set it up locally, use the following command:\n\n```bash\ngit clone git@github.com:ahmedabougabal/brainWiseFullStackAdmissionTask.git\n\n```\n---\n\n\u003e **Backend Setup and PostgreSQL Configuration for BrainWise Task**\n\n---\n\n## ⚙️ Backend Setup and 🐘 PostgreSQL Configuration\n\n\u003e **Note**: The username, password, and database name provided in this example are placeholders and not the actual credentials.\n\u003e \nTo set up the backend and PostgreSQL database for this project, follow these steps:\n\n1. Install dependencies: `pip install -r requirements.txt`\n2. **__(note : ensure you are in the directory 'backend' before executing the following commands)__**.\n3. Apply migrations:\n   `python manage.py makemigrations departments accounts employees companies`  \n   `python manage.py migrate`  \n4. Load initial data:  \n   `python manage.py loaddata fixtures/01_users.json`  \n   `python manage.py loaddata fixtures/02_companies.json`  \n   `python manage.py loaddata fixtures/03_departments.json`  \n   `python manage.py loaddata fixtures/04_employees.json`\n5. On Bash/Zsh CLI login to psql db as a root : *__sudo -u postgres psql__*\n6. Create a PostgreSQL user with permissions:  \n   `CREATE USER usernameOfYourChoice WITH PASSWORD '*******' CREATEDB;`  \n7. Create a database with the user as the owner:  \n   `CREATE DATABASE myBrainWiseTesting_db WITH OWNER = brainWiseAlpha;`  \n8. Connect to the database: `\\c myBrainWiseTesting_db`  \n9. Grant all privileges:  \n   `GRANT ALL PRIVILEGES ON DATABASE myBrainWiseTesting_db TO brainWiseAlpha;`  \n   `GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO brainWiseAlpha;`  \n   `GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO brainWiseAlpha;`  \n   `GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO brainWiseAlpha;`  \n10. Grant schema usage: `GRANT ALL ON SCHEMA public TO brainWiseAlpha;`\n\n---\n\n# [My API Testing ==\u003e **_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\u0026creator=38508690)\n\n![image](https://github.com/user-attachments/assets/246fc533-dfef-4283-9ad5-17ed6fa594a2)\n\n\n![image](https://github.com/user-attachments/assets/4adb1222-a158-4938-88d1-0c423a8fd4c4)\n\n\n![image](https://github.com/user-attachments/assets/47a65efc-17f9-4fbe-9552-ab6c4106166a)\n\n\n![image](https://github.com/user-attachments/assets/2c8d79cf-650c-4590-a671-d651c26fb968)\n\n\n![image](https://github.com/user-attachments/assets/a8ead064-f60d-4cdf-bd1e-d778e4fa90ba)\n\n\n![image](https://github.com/user-attachments/assets/0184ac91-3ec7-4b46-958b-ecbf1b43d923)\n\n\n![image](https://github.com/user-attachments/assets/bf62d0de-e582-416d-bbf3-5ec2c16fa9ef)\n\n\n![image](https://github.com/user-attachments/assets/5d56bbd5-e9e5-4e5b-a661-996a126bb807)\n\n**_Error handling as Auth is required_**\n\n![image](https://github.com/user-attachments/assets/ff1f71be-dce8-45c5-8dcd-67e6d190f32f)\n\n![image](https://github.com/user-attachments/assets/9043e9d6-312f-4f52-9e99-bb25b8ab85f4)\n\n\n![image](https://github.com/user-attachments/assets/2bab3969-af02-4e35-b5d7-232f52685503)\n\n\n![image](https://github.com/user-attachments/assets/8462e2e3-cf77-4064-959e-10443dcd1948)\n\n\n![image](https://github.com/user-attachments/assets/ab1dbb6c-d765-4043-8d33-a3d35f694f7e)\n\n\n![image](https://github.com/user-attachments/assets/f9b96457-d19c-4c5d-bd44-5c2027c50c28)\n\n\n![image](https://github.com/user-attachments/assets/1077cdf0-152e-4308-977e-7e67cab62196)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedabougabal%2Fbrainwisefullstackadmissiontask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmedabougabal%2Fbrainwisefullstackadmissiontask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedabougabal%2Fbrainwisefullstackadmissiontask/lists"}