An open API service indexing awesome lists of open source software.

https://github.com/salehcodes/saas-ezgrading-backend


https://github.com/salehcodes/saas-ezgrading-backend

Last synced: 8 months ago
JSON representation

Awesome Lists containing this project

README

          

# 🎀 **SaaS ezgrading**: Automated Grading & Mapping System

**SaaS ezgrading** is an innovative tool designed to assist teachers after **grading exams** with **mapping scores** into Excel files using **speech-to-text** technology. Rather than manually filling out rows for each student’s score, this platform automates the process, saving time and reducing errors. Simply speak the scores, and the system will generate the Excel file for you!

**visit the site to check it out:** https://ezgrading.vercel.app

---

## πŸš€ Features

- πŸŽ“ **Easy Speech-to-Text Input**
Teachers can **speak the scores** for each question in the exam, and the system will transcribe it and map it to each student automatically.

- πŸ“Š **Automatic Excel Generation**
The platform generates an **Excel file** that includes:
- Scores for each student
- **Average score per question**
- **Average score for the entire exam**

- πŸ”’ **Student-wise Mapping**
Each student's row in the Excel sheet is automatically populated with their scores for all questions in the exam.

- πŸ§‘β€πŸ« **Fast and Accurate**
The system minimizes human error by eliminating manual data entry and using speech recognition for fast input.

- πŸ§‘β€πŸ’» **SaaS-based Platform**
Cloud-hosted for easy access from any device with an internet connection, providing teachers with a smooth and scalable solution.

- πŸ“ **Customizable Grading**
Support for different exam formatsβ€”teachers can map answers to any question, and the system adjusts accordingly.

- πŸ” **Secure Authentication with Auth0**
**Auth0** is integrated for secure user authentication. Teachers can sign in to the platform securely using their preferred login methods (Google, Facebook, etc.).

---

## πŸ”§ Tech Stack

| Technology | Description |
|-----------------|---------------------------------------------------------|
| πŸ§‘β€πŸ’» **Node.js** | Backend JavaScript runtime for API services |
| 🎀 **Speech-to-Text** | API integration for transcribing spoken words into text |
| πŸ“Š **ExcelJS** | Library to create, read, and modify Excel files |
| πŸ—ƒοΈ **MongoDB** | NoSQL database to store student data and exam details |
| ⚑ **Express.js** | Fast and flexible backend framework |
| πŸ§‘β€πŸ’» **React.js** | Frontend library for building the user interface |
| πŸ” **Auth0** | Authentication and authorization as a service for secure login |

---

## πŸ“Έ Screenshots

_Coming soon!_ (You can add screenshots or videos of how the system works, showcasing the frontend and Excel file results.)

---

## πŸš€ Getting Started

### Frontend (Client)

1. **Clone the Client Repository**
```bash
git clone https://github.com/Salehcodes/client.git
```

2. **Install Dependencies**
Navigate to the client folder and install the necessary dependencies:
```bash
cd client
npm install
```

3. **Run the Client**
Start the frontend development server:
```bash
npm start
```
The frontend will be available at [http://localhost:3000](http://localhost:3000).

4. **Configure Auth0 Integration**
Ensure you configure your **Auth0 client ID** and **domain** in the frontend `.env` file:
```env
REACT_APP_AUTH0_CLIENT_ID=your_auth0_client_id
REACT_APP_AUTH0_DOMAIN=your_auth0_domain
```

### Backend (API)

1. **Clone the Backend Repository**
```bash
git clone https://github.com/Salehcodes/SaaS-ezgrading-backend.git
```

2. **Install Dependencies**
Navigate to the backend folder and install dependencies:
```bash
cd SaaS-ezgrading-backend
npm install
```

3. **Setup Environment Variables**
Configure your `.env` file with the following variables:
```env
MONGO_URI=mongodb://localhost:27017/ezgrading
SPEECH_TO_TEXT_API_KEY=your_speech_to_text_api_key
AUTH0_CLIENT_ID=your_auth0_client_id
AUTH0_CLIENT_SECRET=your_auth0_client_secret
AUTH0_DOMAIN=your_auth0_domain
PORT=5000
```

4. **Run the Backend API**
Start the backend server:
```bash
npm start
```
The backend will be available at [http://localhost:5000](http://localhost:5000).

---

## πŸ“ Project Structure

### Frontend (Client)

```bash
client/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ components/ # React components for UI
β”‚ β”œβ”€β”€ services/ # API services and authentication logic (including Auth0 integration)
β”‚ β”œβ”€β”€ pages/ # Different views for users (teacher dashboard, etc.)
β”‚ └── App.js # Main app component
└── .env # Environment configuration file (includes Auth0 settings)
```

### Backend (API)

```bash
SaaS-ezgrading-backend/
β”œβ”€β”€ controllers/ # Logic for handling API requests (grading, speech to text)
β”œβ”€β”€ models/ # Mongoose models for data structures
β”œβ”€β”€ routes/ # API route definitions
β”œβ”€β”€ middleware/ # Authentication and other middleware (including Auth0 validation)
β”œβ”€β”€ .env # Environment configuration file
└── server.js # Main server file to start the app
```

---

## 🀝 Contributing

Contributions are welcome! If you'd like to improve the project, please follow these steps:

1. Fork the repository.
2. Create a feature branch (`git checkout -b feature-name`).
3. Commit your changes (`git commit -am 'Add feature'`).
4. Push to the branch (`git push origin feature-name`).
5. Open a Pull Request to the main repository.

---

## πŸ“„ License

This project is licensed under the [MIT License](LICENSE).

---

## πŸ™‹β€β™‚οΈ Author

**Saleh**
πŸ”— [GitHub Profile](https://github.com/Salehcodes)

---

## ⭐ Show Your Support

If you find this project useful, please give it a ⭐️ on GitHub and share it with others!

---

### Future Enhancements

- **Multi-language Support**: Support for speech-to-text in multiple languages.
- **Improved Accuracy**: Implement machine learning algorithms to enhance speech recognition accuracy.