Releases: upb-code-labs/main-api
Releases · upb-code-labs/main-api
Release v0.42.1
release: v0.42.1 (#142) * fix: Update test block without sending a new test archive (#135) * fix(blocks): Update test block without sending a new test archive * feat: Submit archive to test block (#137) * chore: Add rabbitMQ instance to docker-compose file * refactor: Create utility function to get a base multipart form writer * feat(submissions): Update database when a new submit is received * feat(submissions): Submit metadata to submissions queue * chore: Show logs in the console to check connections * refactor: Create `submissions_work_metadata` view * fix(submissions): Submit work to queue after the submission data is saved * test(submissions): Add test to ensure students can submit archives to test blocks * chore: Update java test template * docs(http): Update insomnia collection * feat: Real time submission status (#138) * chore: Remove unnecessary environment variable Production mode can be enabled by the `GIN_MODE` environment variable * chore: Add new micro-services to docker compose file * feat(submissions): Create SSE implementation to send real time updates to students * feat: Attach gateway instance queue to real time updates exchange * feat(submissions): Listen for messages in the gateway instance queue * docs(): Update insomnia collection Add new SSE endpoint * fix: Add submissions limits (#140) * fix(submissions): Rate limit students submissions * refactor: Remove files deletion error logs table * fix(submissions): Validate if the laboratory is open * test(submissions): Add test to ensure students can receive real time updates about their submissions * refactor: Create static files repository implementation (#141) * Manage request to static files micro-service from a single repository implementation
Release v0.40.0
release: v0.40.0 (#133) * feat: Update status of enrolled students (#129) * refactor: Unify project packages (#130) * feat: Delete markdown block (#131) * feat: Delete test block (#132)
Release v0.37.0
release: v0.37.0 (#128) * docs(openapi): Update spec (#121) * feat: List supported languages (#122) * feat: Download languages template (#123) * feat: Create new test block (#126) * feat: Update test block (#127)
Release v0.33.0
release: v0.33.0 (#114) * feat: Create laboratory (#103) * feat: Update laboratory by UUID (#109) * feat: Get laboratory by UUID (#110) * feat: Get course laboratories (#111) * feat: Create empty markdown block (#112) * feat: Update markdown block content (#113)
Release v0.28.0
release: v0.28.0 (#100) * docs: Add bruno collection (#87) * docs: Create `CONTRIBUTING` file * docs: Add bruno collection * fix: Sort rubric objectives by creation date (#90) * chore(deps): Bump dependencies * chore: Bump golang version * chore: Update docker compose file to work with podman * fix(rubrics): Order rubric objectives by creation date * fix: Min criteria weight (#91) * feat: Update rubric objective (#93) * feat: Create endpoint to update an objective * test: Add test to ensure teachers can update rubric objectives * refactor(tests): Separate utils from test functions * docs(http): Update bruno collection * docs(http): Add insomnia collection * feat: Update objectives criteria (#94) * feat(rubrics): Create endpoint to update an objective criteria * docs(http): Update bruno collection * docs(http): Update insomnia collection * test(rubrics): Add test to ensure teachers can update objectives criteria * feat: Update rubric name (#95) * docs(openapi): Add new endpoint to specification * feat(rubrics): Create endpoint to update the rubric name * docs(http): Update bruno collection * docs(http): Update insomnia collection * test(rubrics): Add test to ensure teachers can update rubric names * feat: Remove objective (#98) * docs(openapi): Update specification Add new endpoints to delete rubric objectives and criteria * feat(db): Add on delete cascade to rubric objectives refs * feat(rubrics): Create endpoint to delete an objective * docs(http): Update bruno collection * docs(http): Update insomnia collection * test(rubrics): Add test to ensure teachers can delete rubric objectives * feat: Delete objective criteria (#99) * refactor(rubrics): Group rubrics DTOs * refactor(rubrics): Group rubrics requests * refactor(courses): Group courses DTOs * refactor(courses): Group courses requests * feat(db): Add on delete cascade constraint on criteria table references * feat(rubrics): Create endpoint to remove objectives criteria * fix(db): Increment max criteria weight decimals * test(rubrics): Add test to ensure teachers can delete criteria * docs(http): Update insomnia and bruno collections * ci: Trigger integration pipeline on pull request to `main`
Release v0.23.0
release: v0.23.0 (#85) * feat: Create rubric (#80) * refactor(db): Change objectives field name * feat(rubrics): Create initial rubrics domain * feat(rubrics): Create initial rubrics repository * feat(rubrics): Endpoint to create a rubric * test(rubrics): Add test to ensure teacher can create rubrics * chore(deps): Bump dependencies * feat: Get rubrics created by teacher (#81) * feat(rubrics): Add endpoint to list rubrics created by teacher * test: Add tests to the endpoint to list created rubrics * feat: Get rubric by UUID (#82) * docs(openapi): Update spec * feat(rubrics): Create endpoint to get rubric by its uuid * test(rubrics): Add tests to the endpoint to get a rubric by its uuid * refactor(rubrics): Remove debug message * feat: Add objective to rubric (#83) * refactor(db): Add max length constraint to objectives and criteria descriptions * docs(openapi): Update spec * feat(rubrics): Create endpoint to add an objective to a rubric * fix(rubrics): Prevent null field when arrays are empty * test(rubrics): Add objective to rubric * feat: Add criteria to rubric objective (#84) * refactor(rubrics): Create functions to verify rubrics ownership * fix(rubrics): Use separated views to verify objectives and criteria ownership * docs(openapi): Update spec * feat(rubrics): Create endpoint to add criteria to a rubric objective * fix(rubrics): Order objectives and criteria by creation date * chore: Clean tests cache before running tests * test(accounts): Register a second teacher account by default * test(rubrics): Ensure teacher can add criteria to rubric objective * chore(db): Update down migration * chore(deps): Bump dependencies
Release v0.18.0
release: v0.18.0 (#72) * feat: Get course by UUID (#71) * refactor(db): Rename view * feat(courses): Get course by uuid * test(courses): Add tests for the new endpoint
Release v0.17.0
release: v0.17.0 (#69) * fix: Use case insensitive text for emails (#62) * fix(accounts): Use case insensitive text to store emails * chore(deps): Bump dependencies * fix: Save who created admin and teacher accounts (#63) * feat(db): Add created by column in users table * fix(accounts): Save who created teachers and admin accounts * feat: Rename course (#64) * feat(courses): Add repository implementation to rename course * feat(courses): Add endpoint to rename a course * test(courses): Rename course * feat: Search students by full name (#65) * docs(openapi): Add new endpoint to the spec * feat(db): Add nex indexes to optimize search queries * feat(accounts): Add repository implementation to search students * feat(accounts): Add endpoint to search students by full name * test(accounts): Search students by full name * feat: Enroll student (#66) * docs(openapi): Add new endpoint to spec * feat(courses): Endpoint to enroll an student to a course * test(courses): Enroll student to course * feat: List enrolled students (#68) * docs(openapi): Update spec * refactor(db): Update enrolled students view name * feat(courses): Repository implementation to get enrolled students * feat(courses): Endpoint to get enrolled students * test(courses): Get enrolled students
Release v0.13.1
release: v0.13.1 (#59) * fix: Send course information when an student joins using invitation code (#58) * docs(openapi): Update spec * fix(courses): Return course information in endpoint to join using invitation code * test(accounts): Update tests
Release v0.13.0
release: v0.13.0 (#56) * feat: Create courses (#43) * chore(courses): Create courses package * refactor: Rename courses table and create courses view * feat(courses): Implement invitation code generator with nanoid * feat(courses): Endpoint to create courses * test(courses): Endpoint to create courses * refactor: Packages folders (#47) * refactor: Update packages organization * refactor: Use common function to instance http routes in tests * feat: Get invitation code (#50) * docs(openapi): Update spec * refactor(db): Rename class columns to course * feat(courses): Get invitation code * test(courses): Get invitation code * feat: Join course using invitation code (#51) * feat(courses): Add repository implementation to add student to a course * refactor(courses): Update domain errors * feat(courses): Endpoint to join a course using an invitation code * docs(openapi): Update spec * test(courses): Join using invitation code * feat: Get teachers and students courses (#52) * refactor(session): Update authorization middleware to accept an array of roles * feat(db): Create view to get data of courses an user is enrolled in * feat(courses): Endpoint to get courses an user is enrolled in * refactor(tests): Use util function in courses tests * test(courses): Add test for the endpoint to get the courses an user is enrolled in * docs(openapi): Update spec (#54) * feat: Toggle course visibility (#55) * docs(openapi): Add endpoint to toggle course visibility * refactor(session): Update unauthorized error message * feat(courses): Endpoint to toggle visibility of a course * test(courses): Add tests for the endpoint to toggle course visibility