Skip to content

Releases: carlotacb/Event-Organizator

Fourth iteration

15 Jan 01:12
5344f37
Compare
Choose a tag to compare

Fourth iteration

In this iteration, there are a lot of functionalities to cover the objective: Have applications flow and status.

In this iteration, also the swagger documentation has been correctly updated

Backend

In the application model we've added the status field with the options PENDING, INVITED, CONFIRMED, CANCELLED, INVALID, REJECTED, WAITLIST and ATTENDED.

Modified endpoints

GET /applications/participants/{event_id} β†’ Added the application status.

GET /applications/myevents β†’ Added the application status.

POST /applications/new β†’ When creating a new application, the status is setting always to PENDING.

GET /events/upcoming/applications β†’ This endpoint now is also returning the event_id.

New endpoint

GET /applications/status/{event_id} β†’ Get the status of the application. If there is no application for that user and event_id, and it's participant, it returns 206 because it's not an error.

POST /applications/update/{application_id} β†’ A admin user can update the application status.

POST /applications/cancel/{application_id} β†’ A user can cancel an application made by them, only if the status is not INVALID or REJECTED.

POST /applications/confirm/{application_id} β†’ A user can confirm an application made by them, only if the status is INVITED.

POST /applications/attend/{application_id} β†’ A organizer or admin user can change an application status to ATTENDED.

Frontend

In this iteration a big refactor for the styles has been done

In the video you can see a stable version of the product in this iteration, the added functionalities are:

  • For ORGANIZERS and ORGANIZERS_ADMIN:

    • New view to see the participants and filter them by application status, and see the number of participants in each one.
    • In participants list, for confirmed applications, when the event is happening, a button to set the applicant to attend appears.
  • For ORGANIZERS_ADMIN:

    • Can change the application status when this is PENDING or WAITLIST (in participants page)
  • For PARTICIPANTS:

    • In my events page, now there is a chip to see the status of each application.
    • In my events page, the button for cancel appears if the status is no INVALID, CANCELLED or REJECTED
    • In my events page, the button for confirm appears if the status is INVITED
    • In events page, there is the application button but if the user has applied, then it shows the status instead of the button.
Simulator.Screen.Recording.-.iPhone.15.Pro.Max.-.2024-01-14.at.16.32.16.mp4

Fixed bugs

  • [BE] My events (GET /applications/myevents) now are ordered descending by start_date.
  • [BE] Create a new event (POST /applications/new) now have error 403, you can not apply to an already started event.
  • [FE] In past events, the apply button does not appear.
  • [FE] Default diet is No restrictions
  • [BE] There was an error when saving the graduation date, it was using the birth_date instead of the graduation_date
  • [FE] The profile page was not showing correctly the career status of a user (work, study or nothing).
  • [FE] Buttons for changing the application status only appears if follows the criteria, attend is only when the event is started, and before it ends. And the other option of changing status only when application is not started.
  • [BE] When register a user, the email is being saved in lowercase.

What's Changed

  • [NO-TRACK] Swagger documentation updated by @carlotacb in #96
  • [ORG-91] Set status in applications by @carlotacb in #97
  • [ORG-93] Application status endpoint by @carlotacb in #98
  • [ORG-93] Correct paths and error by @carlotacb in #99
  • Change gitignore by @carlotacb in #100
  • [ORG-92] Change application status by @carlotacb in #101
  • [ORG-97] Participants list by @carlotacb in #102
  • [ORG-98] Edit participant status in admin view by @carlotacb in #103
  • [ORG-96] Application status is shown in MyEvents page by @carlotacb in #104
  • [ORG-99] Apply button is dynamic and shows the status if applied by @carlotacb in #105
  • [ORG-120] Cancel application endpoint by @carlotacb in #106
  • [ORG-119] Confirm application endpoint by @carlotacb in #107
  • [ORG-121] Cancel participation in my events page by @carlotacb in #108
  • [ORG-122] Confirm application button in my events by @carlotacb in #109
  • [ORG-123] Attended is added as application status by @carlotacb in #110
  • [ORG-124] Application attended endpoint by @carlotacb in #111
  • [ORG-125] Attended button in participants list by @carlotacb in #112
  • [ORG-35] Refactor styles by @carlotacb in #113
  • [ORG-133] Modify dialogs to not full width by @carlotacb in #114
  • [ORG-132] My events endpoint is ordered by start_date descending by @carlotacb in #115
  • [ORG-131] Application can not be creation in a already started event use case by @carlotacb in #116
  • Update organizator_ci.yml by @carlotacb in #95
  • [ORG-131] Buttons do not appear in event when it's past by @carlotacb in #117
  • [ORG-128] Nothing diet now is the default one when setting a profile by @carlotacb in #118
  • [ORG-126] Bug fixed about birth date and graduation date by @carlotacb in #119
  • [ORG-127] Fix bug in profile page that makes that work and study was not correctly set by @carlotacb in #120
  • [ORG-134] Action buttons in participants list should follow the criteria of dates by @carlotacb in #121
  • [ORG-137] Email to lowercase by @carlotacb in #122
  • [ORG-148] Fix scroll and remove check in create application by @carlotacb in #123

Full Changelog: v0.3...v0.4

Third iteration

10 Jan 22:42
5c4ddb1
Compare
Choose a tag to compare

Third iteration release

In this iteration, there are a lot of functionalities to cover the objective: Applications standard a user can apply to an event if it fulfils the conditions.

Backend

In the user model we've added the fields: date_of_birth, study, work, university, degree, expected_graduation, current_job_role, tshirt, gender, alimentary_restrictions, github, website, devpost, linkedin

In the event model we've added the field: open_for_participants, max_participants, expected_attrition_rate, students_only, age_restrictions

Modified endpoints

GET /users/new β†’ In the creation of the user now the new fields: date_of_birth, study and work are mandatory, and also if study is true university, degree and expected_graduation are required and if work is true current_job_role is required.

GET /users/me β†’ When getting the user information now all the fields are returned.

POST /users/update/me β†’ Now it's possible to update all the new fields (not only the ones from the creation)

GET /events, GET /events/upcoming and GET /events/{event_id} β†’ All the endpoints are returning also the new fields from the event.

POST /events/new β†’ When creating a new event, it's mandatory to set all the new parameters.

POST /events/update/{event_id} β†’ When updating an event, you can update all the new fields also.

New endpoints in the events' module

GET /events/upcoming/participants β†’ Given an admin or organizer token in the header, when calling this endpoint, you will get all the upcoming events with the following information: event_name, actual number of participants, max participants and expected attrition rate.

New module (Applications)

POST /applications/new β†’ Create an application given an event_id in the body and a participant user token in the header. The participant must fulfil the conditions of the event.

GET /applications/myevents β†’ Given a participant user token in the header, give all the events where this user is registered.

GET /applications/participants/{event_id} β†’ Given an event_id, and an organizer or admin token as header, when calling this endpoint, the participants list with all the user information will be returned.

Frontend

In the video you can see a stable version of the product in this iteration, the added functionalities are:

  • Register page now have the new fields
  • User profile, have all the information
  • Events cards show a tag if the event is only for students
  • Events page have the information of the age and if it's only for students
  • For PARTICIPANTS:
    • Apply button appears in all the events page
    • My events screen shows all the events where the user is registered
  • ORGANIZERS and ORGANIZERS_ADMIN:
    • New fields in create and update event
    • Events view with the information of how full is the event at this moment
  • Also some more empty pages and errors control
Simulator.Screen.Recording.-.iPhone.15.Plus.-.2024-01-11.at.00.42.02.mp4

What's Changed

  • [ORG-72] New fields to user by @carlotacb in #75
  • [ORG-84] New register page with the new data (date of birth, study, work and information) by @carlotacb in #76
  • [ORG-83] Profile screen with all the new information by @carlotacb in #77
  • [NO-TRACK] Login and homepage redirects are now correct by @carlotacb in #78
  • [ORG-71] Application model and ORM model by @carlotacb in #79
  • [ORG-73] Create application endpoint by @carlotacb in #80
  • [ORG-79] Apply button in events by @carlotacb in #81
  • [ORG-77] My events endpoint by @carlotacb in #82
  • [ORG-76] Endpoint to get participants lists by @carlotacb in #83
  • [NO-TRACK] Fix some configuration issues in api and delete_at is not more in applications by @carlotacb in #84
  • [ORG-80] My events screen by @carlotacb in #85
  • [ORG-88] New parameters in event by @carlotacb in #86
  • [ORG-113] Update and create event with new fields by @carlotacb in #87
  • [ORG-114] Upcoming events with the applications information by @carlotacb in #88
  • [ORG-89] Update and create now have all the fields by @carlotacb in #89
  • [ORG-115] Organizers view in myevents by @carlotacb in #90
  • [ORG-116] Restrictions showed in event cards by @carlotacb in #91
  • [NO TRACK] Change command from docker-compose to Dockerfile by @carlotacb in #92
  • [ORG-118] Don't allow to apply to users not matching the restrictions by @carlotacb in #93
  • [ORG-117] See restrictions in event page by @carlotacb in #94

Full Changelog: v0.2...v0.3

Second iteration

05 Jan 13:58
77ffbe8
Compare
Choose a tag to compare

Second iteration release

In this iteration, there are a lot of functionalities to cover the objective: User roles and permissions and also fixed some bugs

Backend

In the user model we've added the role option that can be (PARTICIPANT, ORGANIZER or ORGANIZER_ADMIN), and when creating a user the default role is PARTICIPANT

New endpoints

GET /users/me/role β†’ Get the user role, using the header Authentication
POST /users/update/role/{user_id} β†’ Update the user user_id to the role specified in the body, this can be done only by ORGANIZER_ADMIN

Secure the endpoints

POST /event/new β†’ Create an event can only be done by ORGANIZER_ADMIN
POST /event/update/{event_id} β†’ Edit an event can only be done by ORGANIZER
POST /event/delete/{event_id} β†’ Delete an event can only be done by ORGANIZER_ADMIN

Frontend

In the video you can see a stable version of the product in this iteration, the added functionalities are:

  • In the homepage now you can filter the events (All, past, future)
  • In profile screen there are some changes, now you can see your role in a Tag
  • The functionalities that are not available for everyone are:
    • Create event button only appears for ORGANIZER_ADMIN
    • Edit event button only appears for ORGANIZER and ORGANIZER_ADMIN
    • Delete event button only appears for ORGANIZER_ADMIN
    • See all users is only appears for ORGANIZER_ADMIN
    • Screen with all users to edit the roles is only appears for ORGANIZER_ADMIN
Second.iteration.video.mp4

Bug fixing

  • The endpoint GET /users/ is now returning the users ordered alphabetically by username.
  • The endpoint GET /events/ and GET /events/upcoming are now returning the events ordered by start_date.
  • In the frontend β†’ all the secured endpoints now requires the token.
  • In the homepage, the page renders every time the user enter the screen.
  • The warning that was appearing in Input component for web is now fixed.
  • The username is stored in lowercase, so now it's case-insensitive.
  • The endpoint POST /users/update/{user_id} is changed to POST /users/update/me, it requires the header Authentication, now you can only edit your information.
  • The endpoint GET /events/ is returning only the not deleted events

PRs done

  • [ORG-52] Add user role in model (Participant, Organizer Admin, Organizer) by @carlotacb in #56
  • [ORG-57] Get role from token endpoint by @carlotacb in #57
  • [ORG-55] Modify user role, can only be modified by admins by @carlotacb in #58
  • [ORG-56] Create button is only shown for admins by @carlotacb in #59
  • [ORG-53] Edit event button for ORGANIZERS and ORGANIZERS ADMIN by @carlotacb in #60
  • [ORG-63] Delete button in events only for ORGANIZERS_ADMIN by @carlotacb in #61
  • [ORG-62] Role in profile screen by @carlotacb in #62
  • [ORG-58] Create event endpoint, only admins can create a event by @carlotacb in #63
  • [ORG-60] Edit event can only be done by ORGANIZERS and ORGANIZERS_ADMIN by @carlotacb in #64
  • [ORG-59] Delete endpoint is only availble for ORGANIZERS ADMINS by @carlotacb in #65
  • [ORG-54] Screen for update roles by @carlotacb in #66
  • [ORG-65] Get all users endpoint is returning users ordered by username by @carlotacb in #67
  • [ORG-67] Authorize calls from frontend (edit, create and delete event) by @carlotacb in #68
  • [ORG-66] Order events by start_date by @carlotacb in #69
  • [ORG-61] Username is now case insensitive by @carlotacb in #70
  • [ORG-46] Edit endpoint to use token instead of user_id by @carlotacb in #71
  • [ORG-69] Edit profile the endpoint is changed by @carlotacb in #72
  • [ORG-68] Filters are now in events page (all, future, past) by @carlotacb in #73
  • [ORG-70] Get all events endpoint is not showing deleted events by @carlotacb in #74

Full Changelog: v0.1...v0.2

First iteration

03 Jan 13:04
280840d
Compare
Choose a tag to compare

First iteration release

In this iteration, there are a lot of functionalities to cover the objective: Events and users CRUDs

Backend endpoints

Events

POST /events/new β†’ Create a new event with the base information
POST /events/update/{event_id} β†’ Update the event event_id
POST /events/delete/{event_id} β†’ Set the event event_id to deleted (add deleted date)

GET /events/ β†’ Gets all the events of the system
GET /events/upcoming β†’ Gets all the upcoming events that are not deleted
GET /events/{event_id} β†’ Gets all the information of the event event_id

Users

POST /users/new β†’ Create a new user with the base information
POST /users/update/{user_id} β†’ Update the users user_id
POST /login β†’ Login user (set token)
POST /logout β†’ Login user (delete token)

GET /users/ β†’ Gets all the users of the system
GET /users/me β†’ Gets all the information of the current user, using the header Authentication
GET /users/{username} β†’ Gets all the information of the user with username
GET /users/{user_id} β†’ Gets all the information of the user with user_id

Frontend functionalities

In this video, we can see the functionalities we can do right now in the system:

  • Users:
    • Login
    • Logout
    • Register
    • Edit profile
  • Events:
    • See all upcoming events
    • See event information
    • Create new event
    • Edit event
    • Delete event
Simulator.Screen.Recording.-.iPhone.15.Plus.-.2024-01-03.at.14.01.23.mp4

What's Changed

Full Changelog: https://github.com/carlotacb/Event-Organizator/commits/v0.1