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

https://github.com/mehdinmili800/school_management_system

Develop a secure, intuitive login page that supports role-based authentication for Admins, Teachers, and Students. The page should validate inputs and provide meaningful error messages.
https://github.com/mehdinmili800/school_management_system

angular css flutter html ionic javascript react react-native reactjs

Last synced: 3 months ago
JSON representation

Develop a secure, intuitive login page that supports role-based authentication for Admins, Teachers, and Students. The page should validate inputs and provide meaningful error messages.

Awesome Lists containing this project

README

          

# School Management System
Access the application:
- Default URL: `https://schoolmanagementsystem-eddb89e8acba.herokuapp.com`
- Swagger API Documentation: `https://schoolmanagementsystem-eddb89e8acba.herokuapp.com/swagger-ui/index.html`

- Admin : mehdi@gmail.com
- Password : mehdi

## How to Contribute

1. Fork this repository.
2. Clone the repository to your local machine.
3. Create a new branch for your feature/fix.
4. Write your code following the coding standards.
5. Commit your changes and push them to your forked repository.
6. Submit a Pull Request with a clear description of your changes.

Please make sure your code passes all tests before submitting a PR!

## Project Overview

The **School Management System** is a comprehensive application built using Java and Spring Boot. It is designed to manage school operations efficiently, including student management, teacher assignments, and class scheduling. This project is modular, scalable, and follows best coding practices.

## Features

- **Student Management**: Add, update, and delete student records.
- **Teacher Management**: Assign teachers to specific subjects and classes.
- **Class Scheduling**: Create and manage timetables for different grades.
- **Authentication**: Role-based access for administrators, teachers, and students.
- **Reports**: Generate detailed reports for students' performance and attendance.

## Tech Stack

- **Backend**: Java 11, Spring Boot
- **Frontend**: Angular (optional integration)
- **Database**: H2 Database (default), MySQL/PostgreSQL (configurable)
- **Build Tool**: Maven
- **Testing**: JUnit, Mockito
- **Documentation**: Swagger

## Prerequisites

Before you begin, ensure you have the following installed:

- Java 17
- Maven 3.6+
- A database system (e.g., MySQL, PostgreSQL) if not using the default H2 database

## Setup Instructions

1. Clone the repository:

```bash
git clone https://github.com/your-repo/school-management-system.git
cd school-management-system
```

2. Build the project:

```bash
./mvnw clean install
```

3. Run the application:

```bash
./mvnw spring-boot:run
```

4. Access the application:
- Default URL: `https://schoolmanagementsystem-eddb89e8acba.herokuapp.com
- Swagger API Documentation: `https://schoolmanagementsystem-eddb89e8acba.herokuapp.com/swagger-ui/index.html`

## Configuration

- Update the database connection in `src/main/resources/application.properties`:

```properties
spring.datasource.url=jdbc:mysql://localhost:3306/school_db
spring.datasource.username=your-username
spring.datasource.password=your-password
```

- For testing purposes, the default H2 database configuration is:

```properties
spring.datasource.url=jdbc:h2:mem:testdb
spring.h2.console.enabled=true
```

## Folder Structure

- `src/main/java`: Application source code
- `src/main/resources`: Configuration files and templates
- `src/test/java`: Test cases
- `target`: Compiled files and packaged application
- `pom.xml`: Maven configuration

## Contribution

Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.

## License

This project is licensed under the MIT License. See the `LICENSE` file for details.

---

Feel free to customize this `README.md` file further as per your project's needs.