Skip to content

GoEventsNow is a modern and dynamic web platform designed to centralize the management and ticket sales for a wide variety of cultural, social and entertainment events, such as concerts, theatrical plays, talks, and more.

Notifications You must be signed in to change notification settings

codeurjc-students/2025-GoEventsNow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

🎟️ 2025-GoEventsNow

GoEventsNow Logo


🧭 Introduction

🎟️ GoEventsNow is a modern and dynamic web platform designed to centralize the management and ticket sales for a wide variety of cultural, social and entertainment events, such as concerts, theatrical plays, talks, and more. The goal of this web is to offer users a unique experience to discover, explore and attend events they are interested in by purchasing tickets directly through the website.

Users can explore events using advanced search and filtering options, view complete events and participants details, and register to access other features, such as purchasing tickets, managing their profiles, writing reviews, and more. In addition, GoEventsNow includes a personalized recommendation algorithm, real-time notifications and integrations with external services like PDF ticket generation and email ticket delivery.

GoEventsNow aims to provide a complete, modern and user-centered system that simplifies the management and discovery of events, offering users a high-quality experience. To achieve this, the project is developed using Spring Boot, Angular, and AI-based sentiment analysis, prioritizing technologies studied throughout the degree. The main goals are to ensure high code quality with solid development practices, guaranteeing scalability and maintainability in relation with the expectations of a Final Degree Project.

GoEventsNow: Your Next Event, Now, Simplified.


🖥️ Screen Mockups

This section provides some key screens, which define the structure and the application functionalities.

Main Page


Search Event


Warning

At this stage, only the functional and technical objectives of the application have been defined. Implementation has not yet started, and the repository currently contains only the initial Phase 1 documentation.

📁 Repository: GoEventsNow on GitHub


🎯 Objectives

📈 Functional Objectives

The goal of the application is to deliver a complete and creative web for managing and discovering events, making it possible for users to register, explore, participate in and review a wide variety of events. Users will be able to manage their tickets, add events to their favorites list, follow participants and interact with additional features that make their experience in the web unique and enjoyable.

Number Functionality Description
1 Discovery & Search 🔍 Users can view, search and filter events using multiple criteria such as category, date and location.
2 User Activity 🔐 Provides a secure system for user registration, login, and profile management (including purchase history and profile editing).
3 Ticketing & History 🎟️ Registered users can securely purchase tickets through the payment gateway and access to their historical record of all their transactions.
4 Events rating Registered users can rate and review the events they attend, providing feedback for other users.
5 Content Control ⚙️ Administrators can add, delete and modify events or participants.
6 Algorithm Personalization 🧠 Implements a recommendation system based on user history and event popularity to personalize event discovery.
7 Digital Ticketing 📄📧 Tickets can be downloaded in PDF format and sent via email once the purchase is successfully completed.
8 Chart Reports 📊 Users can visualize events statistics based on sales performance and attendance data for each event (Bar and Pie charts).
9 Real-Time Communication 🔔 Users will receive real-time notifications (tickets sold out, purchase alerts).
10 AI Sentiment Analysis 🤖 Users reviews will be analyzed using an AI sentiment analysis system, generating rating suggestions and classifying comments to improve recommendations.

💻 Technical Objectives

The project will be a full-stack application, using the modern technologies studied during the degree, such as Spring Boot, Angular or MySQL. The goal is to guarantee high code quality through the application of good practices, ensuring scalability, maintainability, and delivering a unique user experience, aligning the implementation with the highest standards expected of an Engineering graduate.

Number Technical Aspect Description
1 Modern Technologies 🌐 Implementation using the recommended stack: Backend API REST using Spring Boot and Frontend SPA using Angular.
2 Continuous Integration and Deployment (CI/CD) 🚀 Implementation of the CI/CD pipeline using GitHub Actions, ensuring automated quality control and continuous delivery.
3 Automated Testing 🧪 Application of automated testing (Unit, Integration, E2E) using technologies like Java, JUnit, Selenium, and Rest Assured.
4 Packaging & Deployment ☁️ Containerization of the entire application using Docker for consistent local development and deployment in Cloud platform (AWS).
5 Data Persistence 🗄️ Use of MySQL as the relational database for application persistence and data management.
6 Repository 💾 Use of GitHub for version control and GitHub Projects for project tracking and transparency
7 External Service Integration 🛰️ Integrate complementary technologies like PDF generation and geolocation (Google Maps/OpenStreetMap).
8 AI Integration (NLP) 🤖 Integration of a NLP microservice, implemented with open-source models, responsible for multilingual sentiment analysis of user reviews.
9 Code Quality Analysis 🔍 Integration of SonarQube for automated static code analysis, resolving possible code violations.
10 Real-Time Communication 🔔 Implementation of WebSocket for delivering real-time notifications such as tickets and events updates.

🛠️ Methodology

The application development will follow an iterative and incremental methodology, structured into seven main phases and managed through GitHub Projects for continuous monitoring, planning and task management, ensuring transparency regarding task status. The continuous monitoring and strict emphasis on quality control aligns with the principles of agility, delivering value in increments. Progress will be monitored through periodic meetings and email communication with the tutor, who acts as the Project Manager. Version control will be adhered strictly to the GitHub repository, where the functionalities are made in different release branches, remaining the main branch stable all time, and finally integrating the changes only after a mandatory Pull Request process.

🧩 Phased Development Cycle

Phase Target Start Date End Date
Phase 1: Functionalities definition 📝 Complete README.md with the website documentation (Objectives, Methodology, Basic, Intermediate and Advanced functionalities, Analysis and Screen Mockups). [26/10/2025] [../../....]
Phase 2: Configuration & CI 🧪 Set repository structure, CI/CD pipeline, automated testing setup, and minimum functionality implemented. [../../....] [../../....]
Phase 3: Basic Functionality & Docker 🥉 Implementation of Basic Functionalities. Release v0.1 published with Docker. [../../....] [../../....]
Phase 4: Intermediate Functionality 🥈 Implementation of Intermediate Functionalities. Release v0.2 published and application deployed. [../../....] [../../....]
Phase 5: Advanced Functionality 🥇 Implementation of Advanced Functionalities. Release v1.0 published and project finalized. [../../....] [../../....]
Phase 6: Report Writing ✍️ Final Degree Project (TFG) report writing. [../../....] [../../....]
Phase 7: Defense 🎤 Preparation and execution of the TFG defense. [../../....] [../../....]

📅 Project Schedule (Gantt Diagram)

The following Gantt diagram visually represents the temporal planning of the seven development phases, establishing the start and end dates for each project phase.

ganttDiagram


⚙️ Detailed Functionalities

The following functionalities are classified into three levels according to their relevance, complexity and impact on the system. This classification helps to clearly define the development priorities and considerations:

🥉 Basic

These functionalities represent the minimum required for the application to operate correctly and provide the event browsing and ticket management experience:

  • Anonymous User 🕵️:
    • View and explore the main list of events.
    • View and explore the main list of participants.
    • View detailed information about specific events (description, category, date, location, participants, image, reviews) and participants (description, category, image).
  • Registered User 👤:
    • Secure user registration and authentication.
    • Explore and edit profile: personal details, image, email, purchase history, followed participants, favorites events.
    • Purchase event tickets.
    • Cancel previously purchased tickets.
  • Administrator User 👑:
    • Add, delete, and modify operations on Events.
    • Add, delete, and modify operations on Participants.

🥈 Intermediate

Functionalities that adds value and improves user experience:

  • Advanced Search 🔎:
    • Filter events by category, date, participant and other event information.
    • Search through keyword search bar.
    • Combine multiple filters to refine results.
  • Review System ⭐:
    • Registered User: Add, modify, and delete their own reviews.
    • Administrator User: Manage and moderate user generated reviews.
  • Image Upload 🖼️:
    • Upload and update profile images for registered users and participants.
    • Upload event promotional posters and images.
  • Statistics Charts 📊:
    • Bar chart displaying the number of tickets sold per event.
    • Pie chart that categorizes sales based on event types.
  • Help ❓:
    • Implementation of a help center that includes a FAQ section with common questions and issues.
  • Social Interaction ❤️:
    • Functionality for registered users to save and manage a personalized list of favorite events.
    • Functionality for registered users to follow participants to receive upcoming events and other information.

🥇 Advanced

Functionality that allows obtaining the final version of the application, which are more complex, requiring algorithmic implementation, additional technologies or external service integration:

  • Personalized Recommendation System 🧠:
    • Algorithm that generates personalized event feeds for each user, by analyzing user preferences based on:
      • Previously consumed genres or categories.
      • Event popularity metrics like number of tickets sold or rating.
  • Digital Ticketing (PDF) 📄:
    • Automatic generation of tickets in PDF format after successful purchase.
  • Email Service 📧:
    • Allow users to contact support through email.
    • Sends automated emails to users (purchase confirmations, reminders).
  • Geolocation 🗺️:
    • Use of Google Maps/OpenStreetMap for event location display.
  • Real-Time Notifications 🔔:
    • Implementation of WebSocket for live alerts (sold-out tickets, newly added events).
  • Simulated Tickets Payment 🔄:
    • Implementation of a simulated payment gateway system to simulate a secure payment process.
  • Sentiment Analysis (AI Rating) 🤖:
    • Automatic processing of user reviews in events by using NLP (Natural Language Processing) to classify comments. The process works as follows:
      • Each comment receives a sentiment label (Positive, Neutral or Negative), a sentiment score (0.00-1.00) and an AI rating based on the review.
      • The interface displays and compares both user rating and AI rating for error detection and to improve the recommendation system.

🔍 Analysis

📱 Screens & Navigation

The design of the application screens and navigation has been carried out using the design tool Figma. This decision was not only because it provides an efficient and clear environment for creating wireframes, but also because I already had previous experience using it during the degree in other projects. Each wireframe is defined along with a description of its functionality.

The goal of these wireframes is to provide a conceptual representation of the user interface without focusing on visual styling or implementation details. They define the structure, layout, and navigation flow of the main pages of the system, specifically covering the Basic and Intermediate functionalities defined. Advanced functionalities are intentionally excluded from the visual design, since they require additional technologies or depend on external services.

1. Home / Main Screen (Event List)

Description
Main page screen that allows any user to view the main list of available events. It includes basic information about the different kind of events (title, date, location, price, category) and a simplified navigation header for authentication and other sections.

Main Screen

2. Event Detail Screen 

Description
This screen displays to all users complete and specific information about a selected event, including description, rating, participants, location, reviews, date and ticket availability. It also includes features to registered users like the possibility to add the event to favorites, to get tickets or to write a review.

Event Detail

3. Participant List Screen 

Description
This screen allows all users to view and discover the registered participants and basic information of each of them (name, description, followers and category). It includes a search bar, category filters to refine the list and the possibility to view the complete profile.

Participant List

4. Participant Detail Screen 

Description
This screen provides detailed information about a specific participant including their name, category, biography, followers and events they participated in. It also includes features to registered users to follow the participant, to easily be informed about upcoming events.

Participant Detail

5. Search Event Screen 

Description
This screen allows all users to discover events and display specific resulting events depending on different kinds of filters, such as category, date or price.

Search Event

6. Log In Screen 

Description
Screen for user authentication, allowing users to log in to their existing account using their email/username and password. It includes "Sign up" link in order to redirect new users to the registration page.

Log In

7. Sign Up Screen 

Description
Screen that allows new users to create an account to join GoEventsNow. The form requires essential credentials (username, email and password) to ensure security and to transform anonymous users into registered users.

Sign Up

8. User Profile Screen 

Description
This screen provides personal information (username, tickets bought, email address or full name) for authenticated users and the possibility to edit some personal information. It includes features to see the specific tickets bought, favorites events and participants following.

User Profile

9. Chart Screen 

Description
This screen allows users to see statistics and analytics by displaying summarized metrics and detailed charts (Bar chart for sales per event and Pie chart for sales for category).

Chart Screen

10. Manage Events Screen

Description
This screen is an event management only accessible to the administrator. It displays a list of current events, with summary details and icon to modify or delete, and a specific button in order to add new events.

Manage Events

11. Manage Participants Screen

Description
This screen is a participant management only accessible to the administrator. It displays a list of current participants, with summary details and icon to modify or delete, and a specific button in order to add new participants.

Manage Participants

12. Purchase Tickets Screen

Description
This screen manages the final step required to complete the purchase process. It allows registered user to select the number of tickets to buy and confirm the payment.

Purchase Ticket

13. Help / FAQ Screen 

Description
The help page allows users to find quick answers to common questions about issues or doubts in the application.

FAQ


🗺️ Navigation Diagram

Note

The header routes are not considered, except in the Main Screen. Colors in arrows represent role permissions:

  • 🟡 Anonymous, Registered, Admin
  • 🟢 Registered, Admin
  • 🔵 Admin only

Navigation Diagram


🧱 Entities

The application manages five main entities, each with defined attributes and relationships:

Entity Primary Attributes Relationships
User Username, Full Name, Password, Email, Image (Profile photo), Role (Registered/Admin) Can write zero or many reviews (0,N). Can obtain zero or many tickets (0,N). Can follow zero or many participants (0,N). Can save zero or many events (0,N).
Event Title, Description, Category, Date, Image (Promotional poster), Location, Maximum Capacity Can have zero or many tickets sold (0,N). Can have zero or many user reviews (0,N). Has a minimum of 1 participant (1,N). Can be saved by zero or many users (0,N)
Participant Name, Image, Type, Biography Can participate in zero or many events (0,N). Can be followed by zero or many users (0,N)
Ticket Price, Ticket Type, Quantity Only 1 user associated (1,1). Only 1 event associated (1,1).
Review Comment, Rating, AI Rating Only 1 user associated (1,1). Only 1 event associated (1,1).

🔐 User Permissions

Permissions based on user roles:

User Type View/Search Buy Tickets Post/Delete Reviews Manage Events, Participants, Reviews
Anonymous ✔️ (Events, Reviews, Participants)
Registered User ✔️ ✔️ ✔️ (Only their own reviews)
Administrator ✔️ ✔️ ✔️ (All Reviews) ✔️

🖼️ Images

The following entities include one or more images associated with them:

Entity Image Description
Registered User & Administrator Profile photo
Events Promotional event poster
Participants Profile photo

📊 Charts

Statistical data will be shown using the following visual charts:

  • Bar Chart: Show the attendance per event.
  • Pie Chart: Show the percentage of tickets depending on the event type.

🧰 Complementary Technologies

The project will integrate the following external technologies:

  • PDF Generation: To generate the tickets bought.
  • Geolocation: Use of Google Maps/OpenStreetMap to display the exact event location.
  • Email Service: To send emails with information such as the purchase confirmations or reminders.
  • Real-Time communication: To deliver real-time notifications with WebSockets like ticket and event updates.
  • AI Sentiment Analysis: Python microservice that processes user reviews to classify sentiment and improve event recommendations.
  • Simulated Payment Gateway: Python microservice that emulates a payment gateway to securely simulate ticket purchases.

🧠 Advanced Algorithms

The advanced algorithm implementation is the Event Recommendation System. This system will sophisticated data processing and filtering techniques to personalize the user's experience by ordering and prioritizing events on the main interface based on two key metrics:

  • Personalized Affinity: Prioritizing events based on the user's purchase history and identified favorite genres.
  • Market Popularity: Sorting and ranking results by popularity, defined by the total number of tickets sold and current trending activity.

📈 Tracking

Project tracking and task progress will be managed using the following tools:

  • 📝 Blog Medium: Planned for updates and development summaries during the project -> Blog Medium.
  • 💻 GitHub Project: Used to organize and manage the project tasks, set their status and time spent -> GoEventsNow Project Board.

👨‍💻 Author

The development of this application is carried out within the context of the Final Degree Project (TFG) for the Degree in Software Engineering at the School of Computer Engineering (ETSII) of the URJC.


Role Full Name Email GitHub
🎓 Student Alberto Manjón López a.manjon.2022@alumnos.urjc.es AlbertoML1999
🎯 Tutor Óscar Soto Sánchez oscar.soto@urjc.es OscarSotoSanchez

About

GoEventsNow is a modern and dynamic web platform designed to centralize the management and ticket sales for a wide variety of cultural, social and entertainment events, such as concerts, theatrical plays, talks, and more.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •