This project is an access control system built specifically for schools, designed to manage user roles, permissions, and access to various resources. It leverages modern technologies like Spring Boot and Spring Security to handle authentication and authorization effectively.
This system is a modernization of an older project that was originally built using a client-server architecture years ago. The current version is being redesigned to take advantage of modern web frameworks, providing enhanced security, flexibility, and scalability for today's educational institutions.
- Java 17
- Spring Boot 3.3.0
- Spring Security
- H2 Database (for development)
- Thymeleaf (for templating)
- Bootstrap (for responsive UI)
- Clone the repository:
git clone https://github.com/vittoriomigliore/access-control.git
- Navigate to the project directory:
cd access-control
- Build the project:
./gradlew build
- Run the application:
./gradlew bootRun
- Open your web browser and navigate to:
http://localhost:8080
- Log in using the credentials:
admin
/password
- Manage user roles, permissions, and school-specific access policies via the provided user interface.
Note: This project is a work in progress. Some features are currently under development as we continue to build out the functionality needed to modernize the original client-server system. Expect future updates that include more advanced role management and security features tailored to schools.
The original project was designed using a traditional client-server architecture, which over time became outdated and less scalable. This new implementation not only recreates the original features but also introduces improvements using modern web technologies, making the system more adaptable to current educational needs, including:
- Web-based access from any device.
- Enhanced role-based access control for staff, teachers, students, and administrators.
- Scalable architecture that can grow with the school’s needs.
Contributions are welcome! If you encounter any issues or have suggestions for further improvements, please feel free to open an issue or submit a pull request.
- Fork the repository.
- Create your feature branch:
git checkout -b feature/your-feature
- Commit your changes:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature
- Open a pull request.
This project is licensed under the Apache License 2.0. See the LICENSE file for more details.