https://github.com/mariocosenza/astromark
Web platform for managing students’ marks and homework assignments with a distributed ecosystem.
https://github.com/mariocosenza/astromark
ai distributed-systems jakartaee java java-21 javascript jpa-hibernate postgresql react software-engineering spring spring-boot
Last synced: 6 days ago
JSON representation
Web platform for managing students’ marks and homework assignments with a distributed ecosystem.
- Host: GitHub
- URL: https://github.com/mariocosenza/astromark
- Owner: mariocosenza
- License: agpl-3.0
- Created: 2024-09-23T14:28:50.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-04-21T10:42:54.000Z (15 days ago)
- Last Synced: 2025-04-30T16:07:52.497Z (6 days ago)
- Topics: ai, distributed-systems, jakartaee, java, java-21, javascript, jpa-hibernate, postgresql, react, software-engineering, spring, spring-boot
- Language: Java
- Homepage: http://astromark.it
- Size: 25.1 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AstroMark
[](https://mariocosenza.github.io/astromark/)
[](http://www.gnu.org/licenses/agpl-3.0)

![]()
## Documentation
AstroMark provides comprehensive documentation to help developers understand and work with the codebase:- [JavaDoc Documentation](https://mariocosenza.github.io/astromark/): Detailed documentation of the Java codebase, including class structures, methods, and their usage. This documentation is automatically generated from code comments and provides a complete reference for the backend implementation.
- [Swagger API Documentation](https://astromark.it/swagger-ui/index.html): Interactive API documentation that allows you to explore and test the REST endpoints directly through your browser. The Swagger UI provides detailed information about request/response formats, authentication requirements, and available API operations.
## Project Origin
In the bustling corridors of modern education, a group of passionate educators and technologists recognized a critical gap in school management systems. Traditional platforms like Argo and ClasseViva were expensive, rigid, and often disconnected from the real needs of schools and students.
### The Vision
AstroMark was born from a simple yet powerful idea: create an open-source platform that empowers schools with flexible, affordable, and student-centric technology. Our founders, a diverse team of teachers, developers, and education strategists, shared a common belief that technology should simplify, not complicate, the educational experience.
### Key Challenges Addressed
- **Cost Barriers**: Eliminating high licensing fees for schools
- **Technological Accessibility**: Designing an intuitive interface for all users
- **Student Orientation**: Developing a robust guidance and career exploration module
- **Scalability**: Creating a system that grows with school needs## Prerequisites
### Development Environment
- Java 21
- Maven 3.8+
- PostgreSQL database
- Node.js & npm
- Docker (for running TestContainers)
- React with TypeScript
- React Router### Frontend Technologies
- React 19
- TypeScript
- React Router
- Vite## Setup
### 1. Clone Repository
```bash
git clone https://github.com/mariocosenza/astromark.git
cd astromark
```### 2. Configure Environment Variables
Create a `.env` file with the following:
```bash
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/astromark
export SPRING_DATASOURCE_USERNAME=your_username
export SPRING_DATASOURCE_PASSWORD=your_password
export JWT_SECRET=your_secret_key
```### 3. Build Application
```bash
mvn clean install
```### 4. Run Tests
**Note**: Running tests with TestContainers requires Docker to be installed and running.
```bash
mvn test
```### 5. Start Application
```bash
mvn spring-boot:run
```## Deployment
### Server Requirements
- Ubuntu 20.04+ LTS
- Java 21 Runtime
- Systemd
- Docker (recommended)## Contributing
1. Fork repository
2. Create feature branch
3. Commit changes
4. Push to branch
5. Create pull request## License
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).
The AGPLv3 is a copyleft license that requires any modified or extended version of the software to be distributed under the same license, even if the software is run as a network service. This ensures that all improvements and modifications remain open-source and freely available to the community.
## Key Project Dependencies
- Spring Boot 3.4.1
- PostgreSQL Driver
- JWT Authentication
- AWS SDK
- SendGrid for Email
- SpringDoc OpenAPI
- React with TypeScript
- React Router## Monitoring and Observability
- Spring Boot Actuator integrated
- OpenAPI documentation available
- Comprehensive logging## Authors
- [@giuseppecavallaro](https://github.com/GiuseppeCava03)
- [@mariocosenza](https://github.com/mariocosenza)
- [@mariofasolino](https://github.com/MarioFas)
- [@gsacrestano](https://github.com/gsacrestano)