Skip to content

ExamSandbox is a secure examination platform using Docker for isolated code execution. Ideal for educational assessments, it offers a user-friendly interface, robust security measures, and detailed result evaluations.

License

Notifications You must be signed in to change notification settings

ak4m410x01/Examination_Platform_API

Repository files navigation

Examination Platform API

Details

The Examination Platform is a robust system for efficient exam management within educational institutions. It features distinct user roles - administrators, instructors, and students. The platform ensures secure authentication, comprehensive user data management, and effective exam handling. With an intuitive interface, it prioritizes user-friendly design and scalability to accommodate growth. Results access control is implemented, and considerations include audit trails, notifications, and data integrity. The platform aims to streamline examination processes, providing a reliable and user-centric solution.

⚙ Tools and Technologies used

  1. Python: Primary programming language chosen for its simplicity, readability, and vast ecosystem of libraries and frameworks.
  2. Django: A high-level Python web framework renowned for its scalability, security features, and rapid development capabilities.
  3. Django Rest Framework (DRF): Built on top of Django, DRF provides powerful tools for building RESTful APIs, simplifying the creation of web services.
  4. PostgreSQL: A robust open-source relational database management system known for its reliability, extensibility, and support for complex queries and transactions.
  5. JWT (JSON Web Tokens): A standard for securely transmitting information between parties as JSON objects, commonly used for authentication and authorization in web applications.
  6. Docker: Containerization platform that simplifies the deployment and management of applications by packaging them into portable containers, ensuring consistency across different environments.
  7. Docker Compose: Tool for defining and running multi-container Docker applications, enabling seamless configuration and orchestration of complex application architectures.

🛠 Installation and setup

  1. Install Docker here

  2. Install Git here

  3. Create a working directory:

    mkdir ~/MAAT && cd ~/MAAT
  4. Clone the repository

    git clone https://github.com/ak4m410x01/Examination_Platform_API.git .
  5. Switch to DeployOnDocker Branch

    git switch DeployOnDocker
  6. Start the application

     docker-compose up -d
  7. Access API: http://127.0.0.1/api/

  8. Access DB: 127.0.0.1:5432

  9. Don't forget .env file with variables

Variable Value
SECRET_KEY 'django-insecure-%2dmqnqj9v2e&8yk*t=#b+2-=i!45+153*@-g0*=&%1od16z^m'
DEBUG False
ALLOWED_HOSTS 172.0.0.1,*
DATABASE_ENGINE django.db.backends.postgresql
DATABASE_HOST postgres
DATABASE_PORT 5432
DATABASE_NAME maat
DATABASE_USER maat
DATABASE_PASSWORD maat
JWT_SECRET_KEY JWT_S3CR3T_K3Y
POSTGRES_DB maat
POSTGRES_USER maat
POSTGRES_PASSWORD maat

note: these variables are for the lab environment only... don't use these in xxx production environments xxx


🛠 Documentation and Endpoints

  1. Postman
  2. Apidog

PIP Packages

+-------------------------------+---------+---------------------------+
| Name                          | Version | Use                       |
| ----------------------------- | ------- | ------------------------- |
| Python                        | 3.11.7  | Programming Lang          |
| Django                        | 5.0.2   | Django Framework          |
| djangorestframework           | 3.14.0  | Restful Framework         |
| djangorestframework-simplejwt | 5.3.1   | Restful Framework Jwt     |
| django-filter                 | 23.5    | Restful Framework filters |
| django-cors-headers           | 4.3.1   | Restful Framework CORS    |
| psycopg2-binary               | 2.9.9   | PostgreSQL DB lib         |
| pthon-decouple                | 3.8     | To use .env file          |
+-------------------------------+---------+---------------------------+

About

ExamSandbox is a secure examination platform using Docker for isolated code execution. Ideal for educational assessments, it offers a user-friendly interface, robust security measures, and detailed result evaluations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published