Skip to content

Answer Grading System is a web-based application built using Python and Flask that automates the process of grading student answers. It provides instant feedback based on predefined grading criteria, allowing educators to efficiently evaluate large volumes of submissions.

Notifications You must be signed in to change notification settings

AnandBhaskarx/Answer-grading-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Answer Grading System

Automated answer grading system using advanced algorithms. The system is built with Python and Flask to help educational institutions automate the grading of student answers, making the grading process faster and more efficient.An AI model capable of automatically evaluating student-written answers by comparing them with model (reference) answers, using semantic understanding rather than exact word matching.


Table of Contents

  1. Project Overview
  2. Features
  3. Technologies Used
  4. Installation
  5. Usage
  6. Deployment
  7. Contributing
  8. License

Project Overview

This project is designed to automate the process of grading written answers based on predefined criteria. It uses Flask, a lightweight Python web framework, to create a web-based application where answers can be submitted and graded automatically. This system helps educational institutions reduce the time spent manually grading large volumes of answers.

The core functionality includes:

  • Grading answers based on specific algorithms and grading rubrics.

  • Offering feedback on incorrect answers.

  • Generating reports on grading efficiency.

  • Semantic Similarity: Compute cosine similarity between student and reference embeddings.

  • Deep Learning/LLM Grading: o Fine-tune a regression/classification model to predict a score. o Optionally, use GPT-based models to generate textual feedback.

  • A numerical score (0–5 or 0–10)

  • Qualitative feedback (strengths and weaknesses in the student’s answer)


Features

  • Automated Grading: Automatically grades student answers based on set criteria.
  • Web Interface: Built with Flask for easy interaction and integration with educational platforms.
  • Customizable Grading: The grading criteria can be customized to suit different subjects or grading rubrics.
  • Feedback Mechanism: Provides feedback on the correctness of answers, guiding students toward improvements.
  • Data Logging: Logs grading results for record-keeping and further analysis.
  • Scalable: Designed to handle large volumes of answer submissions simultaneously.

Technologies Used

  • Python 3.x: Main programming language used for the backend.
  • Flask: Lightweight web framework for creating the application.
  • HTML/CSS: For creating the frontend interface.
  • JavaScript (Optional): For enhanced interactivity on the frontend.

Installation

Follow these steps to set up the project locally:

Prerequisites

Ensure you have Python 3.x installed on your local machine. You can download Python from the official website: Python Official Website

Steps to Install

  1. Clone the repository:
    git clone https://github.com/AnandBhaskarx/Answer-grading-System.git

2. Navigate to the project folder:

   ```bash
   cd Answer-grading-System
   ```

3. Create a virtual environment (optional, but recommended):

   ```bash
   python -m venv venv
   ```

4. Activate the virtual environment:

   * On Windows:

     ```bash
     .\venv\Scripts\activate
     ```
   * On macOS/Linux:

     ```bash
     source venv/bin/activate
     ```

5. Install the required dependencies:

   ```bash
   pip install -r requirements.txt
   ```

6. Set up the database (if applicable). For SQLite, you may not need to do anything. For MySQL/PostgreSQL, set up your database and update the connection settings in the `config.py` file.

---

## Usage

After installation, you can run the app locally and interact with the grading system.

1. Run the application:

   ```bash
   python app.py
   ```

2. Open your browser and go to `http://127.0.0.1:5000` to view the grading system.

3. You can submit answers through the web interface. The system will automatically grade them based on the predefined grading criteria.

### Example

To test the system, you can submit a sample answer like:

```
Answer: The capital of France is Paris.
```

The system will provide feedback on whether the answer is correct, and the grade will be calculated based on a predefined rubric.

---

## Deployment

You can deploy the application on **Vercel** or **Heroku** for live usage. Here's how you can deploy on Vercel:

1. Go to [Vercel](https://vercel.com/) and sign up/log in.
2. Click on **New Project**, and select your GitHub repository.
3. Vercel will automatically detect the Python environment and start building.
4. Follow the prompts to set up deployment and deploy your application.

For Heroku, you can follow these steps:

1. Create a Heroku account: [Heroku Sign Up](https://signup.heroku.com/)
2. Install Heroku CLI: [Heroku CLI Installation](https://devcenter.heroku.com/articles/heroku-cli)
3. Run the following commands:

   ```bash
   heroku create
   git push heroku main
   heroku open
   ```

---

## Contributing

We welcome contributions to this project! To contribute:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Commit your changes (`git commit -am 'Add new feature'`).
4. Push to the branch (`git push origin feature-branch`).
5. Create a new pull request.

Please make sure to write clear and concise commit messages and follow the coding standards used in the project.

---

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## Acknowledgements

* [Flask Documentation](https://flask.palletsprojects.com/)
* [Vercel](https://vercel.com/)
* [Heroku](https://www.heroku.com/)
* [Python Documentation](https://docs.python.org/)
* [Markdown Guide](https://www.markdownguide.org/)

---

### Thanks for using **Answer Grading System**!

---




Let me know if you need anything else or further customization!

About

Answer Grading System is a web-based application built using Python and Flask that automates the process of grading student answers. It provides instant feedback based on predefined grading criteria, allowing educators to efficiently evaluate large volumes of submissions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •