{"id":26282907,"url":"https://github.com/henriiqueaze/studentprogress","last_synced_at":"2026-05-03T23:32:28.560Z","repository":{"id":281942955,"uuid":"946949391","full_name":"henriiqueaze/StudentProgress","owner":"henriiqueaze","description":"StudentProgress is a Spring Boot application for managing and tracking student data, including grades and academic status. It provides an API for registering, updating, and monitoring student records, calculating averages, and offering real-time insights into student performance, helping educational institutions streamline their processes.","archived":false,"fork":false,"pushed_at":"2025-07-08T23:35:43.000Z","size":58540,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-25T19:03:01.414Z","etag":null,"topics":["docker","java","spring-boot","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henriiqueaze.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,"zenodo":null}},"created_at":"2025-03-11T23:36:50.000Z","updated_at":"2025-07-07T17:19:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"bd879bc0-8d4d-4dfd-847f-6a5631df3710","html_url":"https://github.com/henriiqueaze/StudentProgress","commit_stats":null,"previous_names":["henriiqueaze/studentprogress"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/henriiqueaze/StudentProgress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriiqueaze%2FStudentProgress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriiqueaze%2FStudentProgress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriiqueaze%2FStudentProgress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriiqueaze%2FStudentProgress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henriiqueaze","download_url":"https://codeload.github.com/henriiqueaze/StudentProgress/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriiqueaze%2FStudentProgress/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272116856,"owners_count":24876268,"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","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["docker","java","spring-boot","sql"],"created_at":"2025-03-14T17:15:58.245Z","updated_at":"2026-05-03T23:32:28.520Z","avatar_url":"https://github.com/henriiqueaze.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cp align=\"center\"\u003e🎓 StudentProgress API 📊\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/images/Logo%20StudentProgress.png\" alt=\"StudentProgress Logo\" width=\"300\"\u003e\n\u003c/p\u003e\n\n**StudentProgress** is a Spring Boot application for managing and tracking student data, including grades and academic status.  \nIt provides an API for registering, updating, and monitoring student records, calculating averages, and offering real-time insights into student performance.  \nThis helps educational institutions streamline their processes efficiently.\n\n---\n\n## ✨ Features\n- 📌 Full CRUD operations for student records in the database\n- 🎯 Filter students by academic status\n- 🧮 Automatically calculate grade averages\n- 🔗 HATEOAS support for enhanced API navigation\n- 📄 Pagination and pageable search for student lists\n- 🛠️ Database version control with Flyway\n\n---\n\n## 🚀 How to Use\n\n1. **Clone the repository:**\n   ```bash\n   git clone git@github.com:henriiqueaze/StudentProgress.git\n   cd StudentProgress\n   ```\n\n2. **Create the MySQL database:**\n   Before running the application, make sure you have a MySQL server running locally or accessible remotely, \n   and create the database used by the app:\n   ```bash\n   CREATE DATABASE student_progress;\n   ```\n\n3. **Set up environment variables:**\n   Copy the example file and customize it:\n   ```bash\n   cp .env.example .env\n   ```\n   Make sure the SPRING_DATASOURCE_URL points to your MySQL server host and port, for example:\n   ```bash\n   jdbc:mysql://localhost:3306/student_progress?useSSL=false\n   ```\n\n4. **Build the application (.jar) with Maven:**\n   This step compiles the code and generates the .jar file inside the target/ folder:\n   ```bash\n   ./mvnw clean package\n   ```\n\n5. **Run the application using Docker Compose:**\n   ```bash\n   docker-compose up --build\n   ```\n\n6. **Access the API documentation (Swagger):**\n   ```bash\n   http://localhost:8080/swagger-ui.html\n   ```\n\n---\n\n## 🔗 API Endpoints\n- 📄 `GET /student/{id}` - Retrieve a specific student details\n- 📥 `GET /student` - Retrieve all student details. Optional query parameters for pagination:\n  - page: page number (default: 0)\n  - size: number of records per page (default: 12)\n  - direction: sorting direction, asc or desc (default: asc)\n    - Example:\n\n   ```bash\n   GET /student?page=0\u0026size=10\u0026direction=desc\n   ```\n\n- 🆕 `POST /student` - Register a new student\n- ✏️ `PUT /student` - Update student information  \n- 🖊️ `PATCH /student/id` - Update a student a specific information\n- ❌ `DELETE /student/id` - Remove a student record  \n- 📊 `GET /student/average/id` - Get the grade point average of a specific student\n- 🧮 `GET /student/filter/{status}` — Filter students by academic status\n\n---\n\n## 🌐 CORS Configuration\n\nThis API supports **CORS (Cross-Origin Resource Sharing)** to enable integration with front-end applications hosted on different domains.\n\nCORS is configured globally in the backend using the following setup:\n- Allowed Origins: Defined via CORS_ALLOWED_ORIGINS\n- Allowed Methods: All (GET, POST, PUT, PATCH, DELETE, etc.)\n- Credentials: Enabled (allowCredentials=true) — supports cookies and authorization headers\n\nIn your .env file, define:\n```bash\nCORS_ALLOWED_ORIGINS=http://localhost:8080\n   ```\n\nTo allow multiple domains, separate them with commas:\n```bash\nCORS_ALLOWED_ORIGINS=http://localhost:8080,https://your-frontend.com\n   ```\n\n---\n\n## 🛠️ Technologies Used\n- ☕ Java (Spring Boot)  \n- 🗄️ MySQL (Database)  \n- 🏗️ Hibernate (ORM)  \n- 🔗 HATEOAS (Hypermedia API support)  \n- 🧪 JUnit (Testing framework) \n- 📂 Flyway (Database migrations)  \n- 🐳 Docker \u0026 Docker Compose  \n- 📑 Swagger (API documentation)  \n\n---\n\n## 📜 License\nThis project is licensed under the MIT License.  \nFeel free to use and modify it according to your needs.\n\n---\n\nFor contributions or support, please contact me via email at [henriqueeaze.dev@gmail.com](mailto:henriqueeaze.dev@gmail.com)  \nor connect with me on [LinkedIn](https://www.linkedin.com/in/henrique-azevedo-b2195b2b0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenriiqueaze%2Fstudentprogress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenriiqueaze%2Fstudentprogress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenriiqueaze%2Fstudentprogress/lists"}