https://github.com/ankitborude/abacus-exam-system-rest-api
The Abacus Exam API is a comprehensive platform designed to streamline mathematical assessment and practice for educational institutions.
https://github.com/ankitborude/abacus-exam-system-rest-api
api caching endpoint-engineering exam expressjs generator http-server javascript joi-validation jspdf jwt mongodb mongoose morgan nodejs oauth2 rest-api restful-api winston-logger
Last synced: 3 months ago
JSON representation
The Abacus Exam API is a comprehensive platform designed to streamline mathematical assessment and practice for educational institutions.
- Host: GitHub
- URL: https://github.com/ankitborude/abacus-exam-system-rest-api
- Owner: AnkitBorude
- License: apache-2.0
- Created: 2024-09-06T08:41:24.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-02-07T13:12:56.000Z (5 months ago)
- Last Synced: 2025-02-07T13:40:05.748Z (5 months ago)
- Topics: api, caching, endpoint-engineering, exam, expressjs, generator, http-server, javascript, joi-validation, jspdf, jwt, mongodb, mongoose, morgan, nodejs, oauth2, rest-api, restful-api, winston-logger
- Language: JavaScript
- Homepage: https://ankitborude.github.io/Abacusexam-documentation/
- Size: 310 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
🚀 Abacus Exam REST API




A secure, scalable REST API built with Node.js, Express, and MongoDB for managing and conducting online exams efficiently. This API provides robust features like authentication, question generation, analytics, and more.## 📑 Table of Contents
- [✨ Features](#-features)
- [🛠️ Tech Stack](#️-tech-stack)
- [🔧 Installation](#-installation)
- [📜 API Documentation](#-api-documentation)
- [📊 Testing](#-testing)
- [📝 Scripts](#-scripts)
- [🤝 Contributing](#-contributing)
- [⚖️ License](#️-license)## ✨ Features
Core Features
Security Features
Infrastructure Features
📑 Smart Question Generation
🔒 OAuth Security
🐳 Docker Support
📊 Advanced Analytics
⚙️ Role-Based Access Control
🌐 Cloud Optimized
🔄 Cookie-Free Architecture
🔐 Secure Authentication
📦 Containerization
🗎 Read full Project Documentation on following Link
👉 https://ankitborude.github.io/Abacusexam-documentation
## 🛠️ Tech Stack
### Core Technologies
- **Runtime**: Node.js
- **Framework**: Express.js
- **Database**: MongoDB
- **Container**: Docker & Docker Compose### Key Dependencies
```json
{
"dependencies": {
"randomjs": "*",
"jsPDF": "*",
"mongoose": "*",
"winston": "*",
"morgan": "*",
"joi": "*",
"helmet": "*",
"dotenv": "*",
"bcryptjs": "*"
}
}
```## 🔧 Installation
### Bare Metal Installation
For Bare Metal installation and setup instructions, please refer to the [Bare-Metal Installation Guide](https://ankitborude.github.io/Abacusexam-documentation/#/installation).### Docker Compose Installation
For Production and Local development deployment using docker compose, refer to [Docker Compose Installation Guide](https://ankitborude.github.io/Abacusexam-documentation/#/installation-with-docker).## 📜 API Documentation
Find the comprehensive API documentation [here](https://ankitborude.github.io/Abacusexam-documentation/#/welcome).## 📊 Testing and Coverage
The API is end-to-end tested on Postman with approximately 80% code coverage. Explore the Postman workspace [here](https://www.postman.com/postman-api-fundamentals-student-expert-6316/abacus-exam-system-rest-api/overview).## 📝 Scripts
```json
{
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "NODE_ENV=production node ./src/index.js",
"dev": "nodemon ./src/index.js",
"prof": "node --prof ./src/index.js",
"lint": "npx eslint .",
"lint:fix": "npx eslint . --fix",
"format:check": "npx prettier . --check",
"format:fix": "npx prettier . --write"
}
}
```## Docker Compose Features
Development/Local Features
- Docker-based development environment with hot-reload capabilities
- Node.js application with automatic code synchronization through volume mounting
- MongoDB database with persistent storage
- Environment variable configuration support
- Automatic container restart functionality
- Port mapping for both application and database services
Production Features
- Secure MongoDB authentication with root user credentials
- Health monitoring system for both application and database services
- Log rotation management to prevent disk space issues
- Multiple environment file support (.env and .prod.env)
- Automated container health checks with retry mechanisms
- Production-grade restart policies
## 🤝 Contributing
Contributions are welcome! Feel free to fork the repository, make changes, and submit a pull request. Ensure your code follows the project style guidelines and includes tests.
## ⚖️ License
This project is licensed under the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0).