Releases: carlotacb/Event-Organizator
Fourth iteration
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
andORGANIZERS_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
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
andORGANIZERS_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
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
andORGANIZER_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
- Create event button only appears for
Second.iteration.video.mp4
Bug fixing
- The endpoint
GET /users/
is now returning the users ordered alphabetically by username. - The endpoint
GET /events/
andGET /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 toPOST /users/update/me
, it requires the headerAuthentication
, 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
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
- [ORG-10] create structure for django project by @carlotacb in #1
- [ORG-14][ORG-11] Create event endpoint and add CI to backend workflow by @carlotacb in #2
- [ORG-14] Create event endpoint (view & repository implementation) by @carlotacb in #3
- [ORG-15] Get all events endpoint by @carlotacb in #5
- [ORG-16] Get event by ID endpoint by @carlotacb in #6
- [ORG-18] Update event endpoint by @carlotacb in #7
- [ORG-17] Delete event endpoint by id by @carlotacb in #8
- [ORG-25] Users structe + create user endpoint by @carlotacb in #9
- [ORG-28] Get all users endpoint created by @carlotacb in #10
- [ORG-27] Get by id endpoint by @carlotacb in #11
- [ORG-30] Get by username endpoint by @carlotacb in #12
- [ORG-26] Update user endpoint by @carlotacb in #13
- [NO-TRACKED] Changed and fixed some typos by @carlotacb in #14
- [ORG-26] View created for update user by @carlotacb in #15
- [NO-TRACK] Fix status code and some more things for update events view by @carlotacb in #16
- [ORG-12] Expo structure by @carlotacb in #17
- [ORG-11] Add path in ci by @carlotacb in #19
- [ORG-12] Set up expo project by @carlotacb in #20
- [ORG-13] Deployment settings by @carlotacb in #21
- [ORG-11] Fix CI for backend by @carlotacb in #22
- [NO-TRACK] Optimize imports in BE by @carlotacb in #23
- [NO-TRACK] Test vercel deployment not throwing by @carlotacb in #24
- [NO-TRACK] Minimal change by @carlotacb in #25
- [NO-TRACK] Minimal change to throw ci when changes in backend by @carlotacb in #26
- [ORG-22] Readme for backend by @carlotacb in #27
- [ORG-22] Update the readme with badges by @carlotacb in #28
- [ORG-31] Swagger by @carlotacb in #29
- [NO-TRACK] Add icons to CI file for organizator api by @carlotacb in #31
- [ORG-19] Add EsLint and also add CI for frontend project by @carlotacb in #30
- [NO-TRACK] Clean not needed files by @carlotacb in #32
- [NO-TRACK] More setting up the frontend project by @carlotacb in #33
- [ORG-19] CI for frontend with coverage and linter by @carlotacb in #34
- [NO TRACK] Cors in to installation by @carlotacb in #35
- [ORG-32] First version of the main screen by @carlotacb in #36
- [NO-TRACK] Structure for frontend project with all the expected sitemap by @carlotacb in #37
- [ORG-39] Register page by @carlotacb in #38
- [ORG-43] Login endpoint by @carlotacb in #39
- [ORG-37] Login screen by @carlotacb in #40
- [NO TRACK] Register page fixed things by @carlotacb in #41
- [ORG-40] My profile page by @carlotacb in #42
- [ORG-47] Edit endpoint is not deleting the token anymore by @carlotacb in #43
- [ORG-32] Homepage for all events by @carlotacb in #44
- [ORG-41] Logout endpoint by @carlotacb in #45
- [ORG-48] Logout button in FE by @carlotacb in #46
- [ORG-34] Event information by @carlotacb in #47
- [ORG-36] Delete function by @carlotacb in #48
- [ORG-51] Loading page refactor by @carlotacb in #49
- [ORG-51] Refactor with empty state by @carlotacb in #50
- [ORG-33] Create event page by @carlotacb in #51
- [ORG-35] Edit event is possible by @carlotacb in #52
- [ORG-49] Show only upcoming events in homepage by @carlotacb in #53
- [ORG-42] Bcrypt in password by @carlotacb in #54
- [ORG-42] Fix endpoint by @carlotacb in #55
Full Changelog: https://github.com/carlotacb/Event-Organizator/commits/v0.1