This project is an Intern Developer Interview Task for Rulerise, completed by Simo Hakim for the Software Developer Intern Position. The project was developed using Python and Django.
The objective of this project is to develop a robust API and design for an Employee Management System. The system allows CRUD (Create, Read, Update, and Delete) operations on employee records, role assignment, searching, and status updates. The API documentation is generated using drf-yasg
.
- Endpoints to perform CRUD operations on employee records.
- Ensure a well-structured payload for creating and updating employees.
- Endpoint to allow admins to assign roles to employees.
- Valid roles: [manager, developer, designer, scrum master].
- Endpoints to find employees by name and ID.
- Endpoints to:
- Retrieve total employees.
- Retrieve total available roles.
- Create and delete job roles.
- Endpoint allowing admins to update the status of an employee (employed or fired).
- Ensure that the job role is populated along with other employee information when fetching employee details.
- Python: Programming language.
- Django: Web framework.
- SQLite: Database.
- Django REST Framework: For building RESTful APIs.
- drf-yasg: For generating API documentation.
-
Install dependencies:
pip install -r requirements.txt
-
Run migrations:
python manage.py migrate
-
Start the server:
python manage.py runserver
-
Access the API documentation:
- Swagger UI:
http://127.0.0.1:8000/swagger/
- ReDoc:
http://127.0.0.1:8000/redoc/
- Swagger UI:
-
Access the Admin dashboard documentation:
- Admin:
http://127.0.0.1:8000/admin/
User set by default to simo and password to 1234.
- Admin: