{"id":18153283,"url":"https://github.com/mariocosenza/astromark","last_synced_at":"2025-07-02T16:35:46.055Z","repository":{"id":258811311,"uuid":"861798023","full_name":"mariocosenza/astromark","owner":"mariocosenza","description":"Web platform for managing students’ marks and homework assignments with a distributed ecosystem.","archived":false,"fork":false,"pushed_at":"2025-04-21T10:42:54.000Z","size":26285,"stargazers_count":4,"open_issues_count":11,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-30T16:07:52.497Z","etag":null,"topics":["ai","distributed-systems","jakartaee","java","java-21","javascript","jpa-hibernate","postgresql","react","software-engineering","spring","spring-boot"],"latest_commit_sha":null,"homepage":"http://astromark.it","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mariocosenza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-23T14:28:50.000Z","updated_at":"2025-02-09T14:42:51.000Z","dependencies_parsed_at":"2024-12-21T19:18:27.809Z","dependency_job_id":"80de9845-fae2-4035-8095-44a053189e0a","html_url":"https://github.com/mariocosenza/astromark","commit_stats":null,"previous_names":["mariocosenza/astromark"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariocosenza%2Fastromark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariocosenza%2Fastromark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariocosenza%2Fastromark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariocosenza%2Fastromark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mariocosenza","download_url":"https://codeload.github.com/mariocosenza/astromark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251739652,"owners_count":21635892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","distributed-systems","jakartaee","java","java-21","javascript","jpa-hibernate","postgresql","react","software-engineering","spring","spring-boot"],"created_at":"2024-11-02T03:06:14.880Z","updated_at":"2025-04-30T16:08:24.428Z","avatar_url":"https://github.com/mariocosenza.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AstroMark \n[![Javadoc](https://img.shields.io/badge/JavaDoc-Online-green)](https://mariocosenza.github.io/astromark/)\n[![AGPL License](https://img.shields.io/badge/license-AGPL-blue.svg)](http://www.gnu.org/licenses/agpl-3.0)\n![GitHub Release](https://img.shields.io/github/v/release/mariocosenza/astromark)\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"src/main/typescript/public/logo.svg\" alt=\"AstroMark Logo\" width=\"200\" height=\"200\"\u003e\n\u003c/div\u003e\n\n\n\n## Documentation\nAstroMark provides comprehensive documentation to help developers understand and work with the codebase:\n\n- [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.\n\n- [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.\n\n## Project Origin\n\nIn 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.\n\n### The Vision\n\nAstroMark 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.\n\n### Key Challenges Addressed\n\n- **Cost Barriers**: Eliminating high licensing fees for schools\n- **Technological Accessibility**: Designing an intuitive interface for all users\n- **Student Orientation**: Developing a robust guidance and career exploration module\n- **Scalability**: Creating a system that grows with school needs\n\n## Prerequisites\n\n### Development Environment\n- Java 21\n- Maven 3.8+\n- PostgreSQL database\n- Node.js \u0026 npm\n- Docker (for running TestContainers)\n- React with TypeScript\n- React Router\n\n### Frontend Technologies\n- React 19\n- TypeScript\n- React Router\n- Vite\n\n## Setup\n\n### 1. Clone Repository\n\n```bash\ngit clone https://github.com/mariocosenza/astromark.git\ncd astromark\n```\n\n### 2. Configure Environment Variables\n\nCreate a `.env` file with the following:\n\n```bash\nexport SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/astromark\nexport SPRING_DATASOURCE_USERNAME=your_username\nexport SPRING_DATASOURCE_PASSWORD=your_password\nexport JWT_SECRET=your_secret_key\n```\n\n### 3. Build Application\n\n```bash\nmvn clean install\n```\n\n### 4. Run Tests\n\n**Note**: Running tests with TestContainers requires Docker to be installed and running.\n\n```bash\nmvn test\n```\n\n### 5. Start Application\n\n```bash\nmvn spring-boot:run\n```\n\n## Deployment\n\n### Server Requirements\n\n- Ubuntu 20.04+ LTS\n- Java 21 Runtime\n- Systemd\n- Docker (recommended)\n\n## Contributing\n\n1. Fork repository\n2. Create feature branch\n3. Commit changes\n4. Push to branch\n5. Create pull request\n\n## License\n\nThis project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).\n\nThe 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.\n\n## Key Project Dependencies\n\n- Spring Boot 3.4.1\n- PostgreSQL Driver\n- JWT Authentication\n- AWS SDK\n- SendGrid for Email\n- SpringDoc OpenAPI\n- React with TypeScript\n- React Router\n\n## Monitoring and Observability\n\n- Spring Boot Actuator integrated\n- OpenAPI documentation available\n- Comprehensive logging\n\n## Authors\n\n- [@giuseppecavallaro](https://github.com/GiuseppeCava03)\n- [@mariocosenza](https://github.com/mariocosenza)\n- [@mariofasolino](https://github.com/MarioFas)\n- [@gsacrestano](https://github.com/gsacrestano)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariocosenza%2Fastromark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmariocosenza%2Fastromark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariocosenza%2Fastromark/lists"}