In the current educational landscape, the grading process for academic assignments is often time-consuming, subjective, and inconsistent. This leads to challenges in providing timely and personalized feedback to students. Teachers face difficulties managing large volumes of submissions, which can result in delayed grading and inadequate insights into student performance. This delay not only hampers students' ability to understand their mistakes and improve but also affects their overall learning experience and motivation.
Smart Assess develops an advanced web-based grading platform using Natural Language Processing (NLP) to automate assignment evaluations. It provides detailed, context-aware grading and feedback, reduces grading time, and includes features like grammar checking, AI detection, and plagiarism detection. This enhances the grading experience for teachers and offers students timely feedback for academic growth. 🎓
- 🚀 FastAPI for building APIs
- 🔄 Asynchronous request handling
- 💾 Easy integration with databases
- 📖 Automatic interactive API documentation
- 🤖 AI-powered text evaluation
- ✍️ Grammar checking
- 🔎 Plagiarism detection
- 🐍 Python 3.8+
- 🐳 Docker and Docker Compose
- 🐙 Git
-
Clone the repository:
git clone https://github.com/Smart-Assess/smart-assess-backend.git
-
Navigate to the project directory:
cd smart-assess-backend
-
Create your environment configuration file: Copy the example environment file (
.env.example
) to.env
:cp .env.example .env
Then, populate
.env
with your local configuration details (e.g., database credentials, API keys for any services you might use locally). You will need to acquire your own API keys for services like Qdrant if you intend to use them. -
Install Python dependencies (optional if primarily using Docker, but good for local tooling/testing):
pip install -r requirements.txt
-
Build and run the services: From the project root directory (
smart-assess-backend
), run:docker compose up --build
To run in detached mode (in the background):
docker compose up -d --build
-
Access the application: The API will typically be available at
http://localhost:8000
(or the port configured in your Docker setup). The interactive API documentation (Swagger UI) will be athttp://localhost:8000/docs
. -
Common Docker Compose commands:
- 📜 Check logs:
docker compose logs -f
- 🔄 Restart services:
docker compose restart
- 🛑 Stop services:
docker compose down
- 🏗️ To rebuild images and restart:
docker compose up -d --build
- 📜 Check logs:
- Ensure all dependencies from
requirements.txt
are installed in your local Python environment. - Make sure your
.env
file is correctly configured. - Start the FastAPI server:
The
uvicorn app.main:app --reload
--reload
flag enables auto-reloading when code changes are detected.
This project was made possible by the hard work and dedication of the following team members:
- Abdul Samad Siddiqui (@samadpls) - Lead
- Maira Usman (@Myrausman)
- Ahsan Sajid (@AhsanSajid)
- Rayyan (@Rayyan)
Thank you to the entire team for their contributions! 🎉