Skip to content

Riviera 23 is a mobile app designed for the vibrant cultural event called Riviera. With a user base of over 8000+ users, Riviera 23 quickly became the go-to platform for event information, announcements, merchandise, and real-time notifications. The app provides information about over 130+ cultural and sports events spanning over three days.

License

Notifications You must be signed in to change notification settings

rudrankbasant/Riviera23-app

Repository files navigation

GDSC VIT

Official Riviera App

Riviera 23 is a mobile app designed for the vibrant cultural event called Riviera. With a user base of over 8000+ users, Riviera 23 quickly became the go-to platform for event information, announcements, merchandise, and real-time notifications. The app provides information about over 130+ cultural and sports events spanning over three days.

Download Our App (640 × 320px)

Screens

1. Initial and Authentication:

Group 132

2. Five Main Screens:

  • Home Screen: contains Main events, featured events and ongoing events with navigation to merch and announcement section.
  • Event Screen - contains all events and favourite events, with search and filter options.
  • Riviera Screen - contains all the Instagram Posts related to the event.
  • Info Screen - contains FAQs, Sponsors, Organizers, and Contact Info.
  • Profile Screen - Profile Info about the user.

Group 128 Group 133

3. Sub Screens:

  • Merch Screen - all merchandise listed, with the option to view more.
  • Announcement Screen - all important announcements sorted and nested by date.

Group 130

Implementation / App Design

1. Caching:

The app utilizes the Hive library to cache all data, resulting in improved app performance. This caching mechanism allows for faster data access and enables the app to function offline seamlessly.

2. Reducing Firebase Reads:

One major feature of this app is that the app is designed to utilize fewer Firebase reads. Instead of fetching all data every time, or fetching after a particular period of time, the app makes calls only when data is updated at the Firebase. For this, a collection of remote data versions is stored on the Firestore. Only this collection is fetched every time the app is opened, instead of all data. If the local and remote data version for any data model is different, only that data model is fetched. Hence only a few data are fetched (and cached), and the local data version is updated to prevent unnecessary future API calls.

3.Notification in all three states:

The app sends notifications in all three states the smartphone is in - Foreground, Background and Terminated.

4. Topic Subscription:

Whenever a user favourites an event, a new topic is created using the event id (if it didn't already exist) and the user is subscribed to the topic (and unsubscribed when unfavourited). Hence apart from the general notifications, users can receive event-specific notifications as well. This feature was added later on as an update, hence there's a one-time function that syncs the already favourited events with topic subscriptions.

5. Authentication:

The authentication functionality supports three types of Firebase authentication methods, ensuring flexibility for users to choose their preferred login options:

  • Email and password authentication:
    • Users can create an account by providing their email address and setting up a secure password.
    • Email Verification: Users receive an email verification link upon registration to confirm their email addresses.
    • Password Reset: If users forget their passwords, they can initiate a password reset process, which involves receiving a password reset link via email.
  • Google authentication: Users can sign in using their Google accounts.
  • Apple authentication: For users with Apple devices, the application supports authentication through their Apple accounts.

6. App Showcase / Guide:

The showcase functionality provides three essential guides that users should be made aware of immediately.

  • Merch Section: This guide provides users with the merch button location, for the boost of merch sales.
  • Ongoing Events: This guide offers insights into the ongoing events featured in the application, as this section is at the bottom of the home screen.
  • Favorite Event Button: This guide focuses on the functionality of the "Favorite Event" button, that users come across when they click on an event. This guide is essential as it notifies users that they will receive event-specific notifications once they favourite an event.

Group 131

7. Bloc/Cubit: The state management in the app is handled by the bloc/cubit architecture and has separate components for the following business logics:

  • Authentication
  • Announcements
  • Events
  • Favourites
  • Hashtags/Instagram Posts (related to the event)
  • Contacts
  • Team
  • FAQ
  • Sponsors
  • Merch
  • Venues

8. Repository Pattern:

The app utilizes a combination of Firebase and backend API calls to fetch data, allowing for seamless integration of real-time updates from Firebase as well as accessing additional data and functionality from the backend server. The app follows the Repository Pattern for the business logic coming from the backend API - namely Events and Hashtags/Instagram Posts.

9. Tests:

The app has implemented a series of basic unit tests specifically designed to ensure the accuracy and reliability of event duration, date, and time information. These aspects hold paramount importance to users, as they heavily rely on accurate scheduling and timing to plan their attendance since there are over 130+ events happening overall.


Running

1. Clone the project

git clone https://github.com/rudrankbasant/Riviera23-app.git

2. Install Flutter Packages

flutter pub get

3. Create a .env file and set the following variables

BASE_URL

4. Connect your device or emulator and run the app

flutter run

Download

Here are the Google Play and App Store links.

NOTE: The app has been removed from the App Store by the client few weeks after the event concluded.

Contributors

Rudrank Basant

Rudrank Basant

GitHub LinkedIn

Made with ❤ by DSC VIT

About

Riviera 23 is a mobile app designed for the vibrant cultural event called Riviera. With a user base of over 8000+ users, Riviera 23 quickly became the go-to platform for event information, announcements, merchandise, and real-time notifications. The app provides information about over 130+ cultural and sports events spanning over three days.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published