-
Notifications
You must be signed in to change notification settings - Fork 0
The EVUP project was created with the aim of developing a platform specifically for students and organizations at Universidade do Porto to connect and share events.
Final version of the source code here
docker run -it -p 8000:80 --name=lbaw2252 -e DB_DATABASE="lbaw2252" -e DB_SCHEMA="lbaw2252" -e DB_USERNAME="lbaw2252" -e DB_PASSWORD=CFKrQZJB git.fe.up.pt:5050/lbaw/lbaw2223/lbaw2252
URL to the product: https://lbaw2252.lbaw.fe.up.pt/
Administration URL: https://lbaw2252.lbaw.fe.up.pt/admin
Password | |
---|---|
admin@evup.com | 1234 |
Type | Password | |
---|---|---|
basic account | user@evup.com | 1234 |
event organizer | organizer@evup.com | 1234 |
blocked account | blocked@evup.com | 1234 |
The application design is intuitive and most of the features available are displayed with either commonly used icons or explicity described in text. For a great number of actions within the apllication, we provide an 'action confirmation' preventing users from causing irreversable mistakes, such as deleting an event:
Furthermore, we provide contextual help in tooltips for actions that are more hidden.
Additionally, all the textboxes include placeholders that inform the user of their purpose, and there are messages informing them of possible input errors.
Most buttons include a title which further explains the action for that button.
We have also implemented custom Alerts so that a message is displayed informing the user of the status of an action after it has been performed.
In case an error occurs, an Error Alert will be displayed.
Lastly, we provide an interactive Contacts page, where users can submit bug reports, new feature ideas and ask any doubts regarding our application. These submissions may later be reviewed by our administrators.
We have input validation on both client and server sides:
On the client side, we have explicit types for all input fiels, as is shown in the example below:
<input type="email" name="email" value="{{ old('email') }}" required placeholder="Email" class="w-full border-none bg-transparent outline-none placeholder:italic focus:outline-none" />
We have also validation in the server side, where we use validators to check the data filled by the user. As an example, when editing the profile we also check if the new username/ email already exist (since they are unique keys). The following code is the validator when creating an event:
$validator = Validator::make(
$request->all(),
[
'name' => 'required|string|min:3|max:100',
'eventaddress' => 'required|string|min:3|max:200',
'description' => 'required|string|min:3|max:100',
'image' => 'required|image|mimes:jpg,png,jpeg,gif,svg|max:4096',
'endDate' => 'required|date',
'startDate' => 'required|date',
]
);
$errors = [];
if ($validator->fails()) {
foreach ($validator->errors()->messages() as $key => $value) {
$errors[$key] = is_array($value) ? implode(',', $value) : $value;
}
return redirect()->back()->withInput()->withErrors($errors);
}
Accessibility results: 15/18 Usability results: 23/28
Page | Errors | Warnings | PDF Link |
---|---|---|---|
Home Page | 0 | 3 | homePage.pdf |
Event Page | 1 | 5 | eventPage.pdf |
Profile | 1 | 3 | profile.pdf |
MyEvents | 0 | 2 | myEvents.pdf |
Admin Panel | 0 | 2 | adminPanel.pdf |
About | 0 | 2 | about.pdf |
Contact | 0 | 2 | contact.pdf |
Login | 0 | 1 | login.pdf |
We have implemented some extra (low) features and did not implement a ticket system, contrary to what was specified in the requirements specification stage.
In the requirements specification stage, we initially choose Portability as one of our main Technical requirements, however we later changed our minds and put our efforts into improving Availability for the users.
Updated OpenAPI specification in YAML format to describe the final product's web resources.
TailwindCSS (link)
Tailwind CSS is a utility-first CSS framework that provides a set of low-level utility classes for building custom user interfaces. It allows developers to style their HTML elements directly using these classes, rather than writing custom CSS, making it easier and faster to build custom designs. It is responsive, customizable, and extensible.
TailwindCSS - Flowbite (link)
Flowbite is a library of components built on top of the utility-classes from Tailwind CSS and it also includes a JavaScript file that makes interactive elements works, such as modals, dropdowns, and more.
Laravel (link)
A PHP Framework For Web Artisans, that provides the strucure and starting point for creating our application.
Laravel Socialite (link)
Laravel package to authenticate with OAuth API, more specifically with Google, as it can be seen in the login page.
Laravel Mail (link)
Laravel package used to send mails. It it used to send Contact Form Notifications, Unban Appeal Notifications and Reset Password Notifications.
Mailtrap.io (link)
Mailtrap is a platform or safe and comprehensive email testing. Mailtrap is implemented as a dummy SMTP server. It catches all your test emails and displays them in virtual inboxes. Used to catch all mails sent by our web application.
US Identifier | Name | Module | Priority | Team Members | State |
---|---|---|---|---|---|
US01 | Browse Events | M03: Events | high | Sara Reis | 100% |
US02 | View Public Event | M03: Events | high | Daniela Tomás, Sara Reis | 100% |
US03 | Search Events | M03: Events | high | Sara Reis | 100% |
US04 | Explore Events by Tag | M03: Events | medium | Sara Reis | 100% |
US05 | Explore Events by Category | M03: Events | medium | Sara Reis | 100% |
US06 | See About Us | M08: Static Pages | medium | José Miguel Isidro | 100% |
US07 | Consult Main Features | M08: Static Pages | medium | José Miguel Isidro | 100% |
US08 | Consult Contacts | M08: Static Pages | medium | José Miguel Isidro | 100% |
US09 | Appeal for Unblock | M02: Profile and User Information | low | José Miguel Isidro | 100% |
Table 2: User user stories.
US Identifier | Name | Module | Priority | Team Members | State |
---|---|---|---|---|---|
US10 | Sign-in | M01: Authentication | high | Sara Reis | 100% |
US11 | Sign-up | M01: Authentication | high | Sara Reis | 100% |
US12 | Logout | M01: Authentication | high | Sara Reis | 100% |
US13 | Recover Password | M01: Authentication | medium | José Miguel Isidro | 100% |
US14 | OAuth API Sign-in | M01: Authentication | low | Sara Reis | 100% |
US15 | OAuth API Sign-up | M01: Authentication | low | Sara Reis | 100% |
Table 3: Visitor user stories.
US Identifier | Name | Module | Priority | Team Members | State |
---|---|---|---|---|---|
US16 | Request to be Event Organizer | M03: Events | high | Hugo Almeida | 100% |
US17 | Invite Users to Public Event | M03: Events | high | Sara Reis | 100% |
US18 | Manage Events Attended / to Attend | M03: Events | high | Sara Reis | 100% |
US19 | View Profile | M02: Profile and User Information | high | Hugo Almeida, José Miguel Isidro, Sara Reis | 100% |
US20 | Edit Profile | M03: Events | high | Sara Reis | 100% |
US21 | Request to Join Event | M03: Events | medium | Sara Reis | 100% |
US22 | Add a Profile Picture | M02: Profile and User Information | medium | Sara Reis | 100% |
US23 | View Personal Notifications | M06: Notifications | medium | José Miguel Isidro | 100% |
US24 | Recover Password | M01: Authentication | medium | José Miguel Isidro | 100% |
US25 | Delete Account | M02: Profile and User Information | medium | José Miguel Isidro | 100% |
US26 | Report Event | M03: Events | low | José Miguel Isidro | 100% |
Table 4: Authenticated User user stories.
US Identifier | Name | Module | Priority | Team Members | State |
---|---|---|---|---|---|
US27 | View Event Comments | M08: Comments | medium | Daniela Tomás | 100% |
US28 | Add Comments | M03: Events | medium | Daniela Tomás, José Miguel Isidro | 100% |
US29 | Answer Polls | M07: Polls | medium | Hugo Almeida | 100% |
US30 | Upload Files | M02: Profile and User Information | medium | Sara Reis | 100% |
US31 | Vote in Comments | M08: Comments | medium | Daniela Tomás | 100% |
US32 | View Attendees List | M03: Events | medium | José Miguel Isidro | 100% |
US33 | Leave Event | M03: Events | medium | Sara Reis | 100% |
US34 | Edit comments | M08: Comments | medium | Daniela Tomás | 100% |
US35 | Delete Comment | M03: Events | medium | Daniela Tomás, José Miguel Isidro | 100% |
US36 | Answer Comments | M03: Events | low | Daniela Tomás, José Miguel Isidro | 100% |
Table 5: Attendee user stories.
US Identifier | Name | Module | Priority | Team Members | State |
---|---|---|---|---|---|
US37 | Create Event | M03: Events | high | Sara Reis | 100% |
US38 | Edit Event Details | M03: Events | high | Daniela Tomás | 100% |
US39 | Add User to Event | M03: Events | high | José Miguel Isidro | 100% |
US40 | Manage Event Participants | M03: Events | high | José Miguel Isidro | 100% |
US41 | Create Polls | M07: Polls | medium | Hugo Almeida | 100% |
US42 | Cancel Event | M03: Events | medium | José Miguel Isidro | 100% |
US43 | Manage Event Visibility | M03: Events | medium | José Miguel Isidro | 100% |
US44 | Manage Available Tickets | None | low | None | 0% |
US45 | Send Event Invitations | M03: Events | low | Sara Reis | 100% |
US46 | Manage Join Requests in Public Events | M03: Events | low | José Miguel Isidro | 100% |
US47 | Manage Join Requests in Private Events | M03: Events | low | José Miguel Isidro | 100% |
US48 | Answer Comments | M08: Comments | low | Daniela Tomás, José Miguel Isidro | 100% |
US49 | Event Dashboard | M03: Events | low | José Miguel Isidro | 100% |
Table 6: Event Organizer user stories.
US Identifier | Name | Module | Priority | Team Members | State |
---|---|---|---|---|---|
US50 | Remove comments | M04: User Administration | high | Daniela Tomás, José Miguel Isidro | 100% |
US51 | Ban and Unban (block and unblock) user | M04: User Administration | high | José Miguel Isidro | 100% |
US52 | Delete Event | M04: User Administration | high | José Miguel Isidro | 100% |
US53 | Verify Event Organizer | M04: User Administration | high | José Miguel Isidro, Sara Moreira Reis | 100% |
US54 | Browse Events | M04: User Administration | high | José Miguel Isidro | 100% |
US55 | View Event Details | M04: User Administration | high | Daniela Tomás | 100% |
US56 | Manage Event Reports | M04: User Administration | high | José Miguel Isidro | 100% |
US57 | Cancel (delete) Event | M04: User Administration | medium | José Miguel Isidro | 100% |
US58 | Administrator Accounts | M04: User Administration | medium | José Miguel Isidro | 100% |
US59 | Administer User Accounts (search, view, edit, create) | M04: User Administration | medium | José Miguel Isidro | 100% |
US60 | Delete User Account | M04: User Administration | medium | José Miguel Isidro | 100% |
US61 | View Unban (unblock) appeals | M04: User Administration | low | José Miguel Isidro | 100% |
US62 | View User Contact Submissions | M04: User Administration | low | José Miguel Isidro | 100% |
US63 | Admin Dashboard | M04: User Administration | low | José Miguel Isidro | 100% |
Table 7: Admin user stories
This artifact corresponds to the presentation of the product.
The EVUP project was created with the aim of developing a platform specifically for students and organizations at Universidade do Porto to connect and share events. The platform provides a space for students and organizations to create and join events that are relevant to them. An administrative team has been appointed to oversee the operation of the platform and ensure that all users follow the website's rules and regulations.
The website was built using HTML5, JavaScript, and CSS, and utilizes the TailwindCSS library for the frontend and the Laravel PHP framework for the backend.
URL to the product: http://lbaw2252.lbaw.fe.up.pt
Changes made to the first submission:
- Fixed some errors and bugs that caused the website to crash
- Added validation and usability files
- Last Changed: 03/01/2023
- Editor for the first submission: Hugo Almeida
GROUP2223
- Daniela Tomás, up202004946@edu.fc.up.pt
- Hugo Almeida, up202006814@edu.fe.up.pt
- José Miguel Isidro, up202006485@edu.fe.up.pt
- Sara Moreira Reis, up202005388@edu.fe.up.pt