From c6efbfdfce6eb860453c2dc0142241defc5d58d5 Mon Sep 17 00:00:00 2001 From: Rudrank Basant <85751479+rudrankbasant@users.noreply.github.com> Date: Mon, 10 Jul 2023 03:45:40 +0530 Subject: [PATCH 1/6] docs: update readme --- README.md | 80 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 59 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 4f88228..03f8af4 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,55 @@

- GDSC VIT - -

< Insert Project Title Here >

-

< Insert Project Description Here >

+ GDSC VIT

---- -[![Join Us](https://img.shields.io/badge/Join%20Us-Developer%20Student%20Clubs-red)](https://dsc.community.dev/vellore-institute-of-technology/) -[![Discord Chat](https://img.shields.io/discord/760928671698649098.svg)](https://discord.gg/498KVdSKWR) +

Official Riviera App

+

< Insert Project Description Here >

+ + + +
+ Download Our App (640 × 320px) +
+ -[![DOCS](https://img.shields.io/badge/Documentation-see%20docs-green?style=flat-square&logo=appveyor)](INSERT_LINK_FOR_DOCS_HERE) -[![UI ](https://img.shields.io/badge/User%20Interface-Link%20to%20UI-orange?style=flat-square&logo=appveyor)](INSERT_UI_LINK_HERE) + + + + +--- ## Features -- [ ] < feature > -- [ ] < feature > -- [ ] < feature > -- [ ] < feature > + +### 1. Authentication: + + The authentication functionality supports three types of Firebase authentication methods, ensuring flexibility for users to choose their preferred login options: + - [X] **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: In case users forget their passwords, they can initiate a password reset process, which involves receiving a password reset link via email. + - [X] **Google authentication**: Users can also choose to sign in using their Google accounts. + - [X] **Apple authentication**: For users with Apple devices, the application supports authentication through their Apple accounts. + +
+ +### 2. App Showcase / Guide: +The showcase functionality provides with three important guides that users should be made aware of immediately. + - [X] **Merch Section**: This guide provides users with a walkthrough of the merchandise section. + - [X] **Ongoing Events**: This guide offers insights into the ongoing events featured in the application. + - [X] **Favorite Event Button**: This guide focuses on the functionality of the "Favorite Event" button. + +
+ +### 3. Bloc/Cubit: +### 4. Repository Pattern: +### 5. Caching: +### 6. Reducing Firebase Reads: +### 7. Firebase and Backend API calls: +### 8. Notification in all three states: +### 9. Topic Subscription: +
@@ -29,16 +60,23 @@ ## Running -< directions to install > +### 1. Clone the project + +```bash +git clone https://github.com/GDGVIT/riviera2023-app.git +``` +### 2. Install Flutter Packages ```bash -< insert code > +flutter pub get ``` -< directions to execute > +### 3. Create a `.env` file and set the following variables +`BASE_URL` +### 4. Connect your device or emulator and run the app ```bash -< insert code > +flutter run ``` ## Contributors @@ -46,15 +84,15 @@
- John Doe + Rudrank Basant

- Your Name Here (Insert Your Image Link In Src + Rudrank Basant

- + GitHub - + LinkedIn

From 1036292c33ddbc892df3d9f1f4f52eda779d893d Mon Sep 17 00:00:00 2001 From: Rudrank Basant <85751479+rudrankbasant@users.noreply.github.com> Date: Fri, 14 Jul 2023 01:53:00 +0530 Subject: [PATCH 2/6] docs: add description --- README.md | 56 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 03f8af4..56d073b 100644 --- a/README.md +++ b/README.md @@ -12,52 +12,62 @@ Download Our App (640 × 320px) +--- +## 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 data versions is stored on the Firestore. Only this collection is fetched every time the app is opened. If the version of any data kind of data is changed, the remote data version is changed for that model only. 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. ---- - -## Features +### 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 favourite events and topic subscriptions. -### 1. Authentication: +### 5. Authentication: The authentication functionality supports three types of Firebase authentication methods, ensuring flexibility for users to choose their preferred login options: - [X] **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: In case users forget their passwords, they can initiate a password reset process, which involves receiving a password reset link via email. - - [X] **Google authentication**: Users can also choose to sign in using their Google accounts. + - Password Reset: If users forget their passwords, they can initiate a password reset process, which involves receiving a password reset link via email. + - [X] **Google authentication**: Users can sign in using their Google accounts. - [X] **Apple authentication**: For users with Apple devices, the application supports authentication through their Apple accounts.
-### 2. App Showcase / Guide: -The showcase functionality provides with three important guides that users should be made aware of immediately. - - [X] **Merch Section**: This guide provides users with a walkthrough of the merchandise section. - - [X] **Ongoing Events**: This guide offers insights into the ongoing events featured in the application. - - [X] **Favorite Event Button**: This guide focuses on the functionality of the "Favorite Event" button. +### 6. App Showcase / Guide: +The showcase functionality provides three essential guides that users should be made aware of immediately. + - [X] **Merch Section**: This guide provides users with the merch button location, for the boost of merch sales. + - [X] **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. + - [X] **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.
-### 3. Bloc/Cubit: -### 4. Repository Pattern: -### 5. Caching: -### 6. Reducing Firebase Reads: -### 7. Firebase and Backend API calls: -### 8. Notification in all three states: -### 9. Topic Subscription: +### 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.
-## Dependencies - -- < dependency > -- < dependency > - ## Running ### 1. Clone the project From 20aff33ac1171dbdc444aaa28ce5002318898457 Mon Sep 17 00:00:00 2001 From: Rudrank Basant <85751479+rudrankbasant@users.noreply.github.com> Date: Fri, 14 Jul 2023 02:19:31 +0530 Subject: [PATCH 3/6] docs: visuals --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 56d073b..9dab51d 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,11 @@ --- +## Screens + +![Group 128](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/0827057c-86ce-45cd-b42a-36d5c0d66729) +![Group 130](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/2f8900c9-de91-4ed8-8ee9-651c1a1c9b0d) + ## Implementation / App Design @@ -28,9 +33,7 @@ The app sends notifications in all three states the smartphone is in - Foregroun ### 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 favourite events and topic subscriptions. - ### 5. Authentication: - The authentication functionality supports three types of Firebase authentication methods, ensuring flexibility for users to choose their preferred login options: - [X] **Email and password authentication**: - Users can create an account by providing their email address and setting up a secure password. @@ -39,7 +42,6 @@ Whenever a user favourites an event, a new topic is created using the event id ( - [X] **Google authentication**: Users can sign in using their Google accounts. - [X] **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. @@ -47,8 +49,8 @@ The showcase functionality provides three essential guides that users should be - [X] **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. - [X] **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](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/8494ea9b-1872-41a0-aad4-8cde40e8083e) + ### 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 From 0d207c8a0e3f9bbd672b2a8534418fd0c334ca3b Mon Sep 17 00:00:00 2001 From: Rudrank Basant <85751479+rudrankbasant@users.noreply.github.com> Date: Fri, 14 Jul 2023 02:57:41 +0530 Subject: [PATCH 4/6] docs: update --- README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9dab51d..8259a1b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

Official Riviera App

-

< Insert Project Description Here >

+

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.

@@ -15,7 +15,23 @@ --- ## Screens +### 1.Initial and Authentication: +![Group 132](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/4153dd4b-05fd-4c2b-bbcb-8357591c4589) + +### 2. Five Main Screens: + +- [x] **Home Screen**: contains Main events, featured events and ongoing events with navigation to merch and announcement section. +- [x] **Event Screen** - contains all events and favourite events, with search and filter options. +- [x] **Riviera Screen** - contains all the Instagram Posts related to the event. +- [x] **Info Screen** - contains FAQs, Sponsors, Organizers, and Contact Info. +- [x] **Profile Screen** - Profile Info about the user. + ![Group 128](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/0827057c-86ce-45cd-b42a-36d5c0d66729) + +### 3.Sub Screens: +- [x] **Merch Screen** - all merchandise listed, with option to view more. +- [x] **Announcement Screen** - all important announcements sorted and nested by date. + ![Group 130](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/2f8900c9-de91-4ed8-8ee9-651c1a1c9b0d) From e675a75452273c6ae395d6ac32e13e8c729af85f Mon Sep 17 00:00:00 2001 From: Rudrank Basant <85751479+rudrankbasant@users.noreply.github.com> Date: Fri, 14 Jul 2023 03:43:02 +0530 Subject: [PATCH 5/6] docs: links --- README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8259a1b..14ca184 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

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.

+

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 event spanning over three days.

@@ -12,10 +12,11 @@ Download Our App (640 × 320px) + --- ## Screens -### 1.Initial and Authentication: +### 1. Initial and Authentication: ![Group 132](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/4153dd4b-05fd-4c2b-bbcb-8357591c4589) ### 2. Five Main Screens: @@ -28,7 +29,7 @@ ![Group 128](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/0827057c-86ce-45cd-b42a-36d5c0d66729) -### 3.Sub Screens: +### 3. Sub Screens: - [x] **Merch Screen** - all merchandise listed, with option to view more. - [x] **Announcement Screen** - all important announcements sorted and nested by date. @@ -41,13 +42,13 @@ 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 data versions is stored on the Firestore. Only this collection is fetched every time the app is opened. If the version of any data kind of data is changed, the remote data version is changed for that model only. Hence only a few data are fetched (and cached), and the local data version is updated to prevent unnecessary future API calls. +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 favourite events and topic subscriptions. +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: @@ -83,6 +84,8 @@ The showcase functionality provides three essential guides that users should be ### 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.
@@ -106,6 +109,8 @@ flutter pub get ```bash flutter run ``` +## Download +Here are the [Google Play](https://play.google.com/store/apps/details?id=in.ac.vit.riviera23&hl=en&gl=US) and [App Store](https://play.google.com/store/apps/details?id=in.ac.vit.riviera23&hl=en&gl=US) links. ## Contributors From aa12f705832f1e72b3e881465dfda3ea2acc35b5 Mon Sep 17 00:00:00 2001 From: Rudrank Basant <85751479+rudrankbasant@users.noreply.github.com> Date: Sat, 15 Jul 2023 15:56:45 +0530 Subject: [PATCH 6/6] docs: update --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 14ca184..249823b 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,11 @@ - [x] **Info Screen** - contains FAQs, Sponsors, Organizers, and Contact Info. - [x] **Profile Screen** - Profile Info about the user. -![Group 128](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/0827057c-86ce-45cd-b42a-36d5c0d66729) +![Group 128 (1)](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/6d0cc024-5c4d-497e-a993-dbb07a6629b6) +![Group 133](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/cd5cce99-06a1-45b3-b978-1ff85d6bc613) ### 3. Sub Screens: -- [x] **Merch Screen** - all merchandise listed, with option to view more. +- [x] **Merch Screen** - all merchandise listed, with the option to view more. - [x] **Announcement Screen** - all important announcements sorted and nested by date. ![Group 130](https://github.com/rudrankbasant/riviera2023-app/assets/85751479/2f8900c9-de91-4ed8-8ee9-651c1a1c9b0d) @@ -110,7 +111,8 @@ flutter pub get flutter run ``` ## Download -Here are the [Google Play](https://play.google.com/store/apps/details?id=in.ac.vit.riviera23&hl=en&gl=US) and [App Store](https://play.google.com/store/apps/details?id=in.ac.vit.riviera23&hl=en&gl=US) links. +Here are the [Google Play](https://play.google.com/store/apps/details?id=in.ac.vit.riviera23&hl=en&gl=US) and [App Store](https://play.google.com/store/apps/details?id=in.ac.vit.riviera23&hl=en&gl=US) links. +> **NOTE:** The app has been removed from the App Store by the client few weeks after the event concluded. ## Contributors