Skip to content

Releases: upb-code-labs/main-api

Release v0.42.1

07 Jan 17:41
5f7806e
Compare
Choose a tag to compare
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

30 Dec 17:41
ec248f3
Compare
Choose a tag to compare
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

30 Dec 02:09
b29e046
Compare
Choose a tag to compare
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

29 Nov 16:43
e37d899
Compare
Choose a tag to compare
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

16 Nov 15:47
eb1fa4c
Compare
Choose a tag to compare
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

13 Oct 13:16
f868090
Compare
Choose a tag to compare
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

08 Oct 16:15
7d2c5eb
Compare
Choose a tag to compare
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

06 Oct 14:30
776fe91
Compare
Choose a tag to compare
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

04 Oct 00:51
95a1f80
Compare
Choose a tag to compare
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

30 Sep 17:00
2a056c8
Compare
Choose a tag to compare
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