Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jaimeyfrank authored Dec 13, 2024
1 parent 58f5d39 commit 3d3fa15
Showing 1 changed file with 16 additions and 30 deletions.
46 changes: 16 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# BU Arts Passport

### Description
BU Arts Passport is a simple and lightweight mobile app that tracks student engagement in arts events hosted by the BU Arts department.
This project aims to streamline the process of attending art events at school: starting from seeing the ongoing and upcoming events,
finding out the details of interested events, to finally checking in and tracking the participation to these events.
BU Arts Passport is a simple and lightweight mobile app that promotes and tracks student engagement in arts events hosted by the BU Arts Initiative and College of Fine Arts.
Students can browse upcoming events, register to attend, and check in at the event to recieve points and stickers.
Additionally, the [admin dashboard](https://github.com/BU-Spark/se-bu-passport-arts/tree/main/bu_arts_admin#readme) is a web application that allows administrators to update event information and view more detailed information about student attendance.

### Prerequisites and Configuration
Before you begin, ensure you have met the following requirements:
- **Flutter**: Your system must have Flutter installed. This project was built using Flutter 3.19.2. Ensure that you are using this version or later. For installation instructions, see [Flutter's official installation guide](https://flutter.dev/docs/get-started/install).
- **Dart SDK**: Dart 3.3.0 or later is required. However, this typically comes with the Flutter installation.
- **Android or iOS Setup**: For Android, you must have Android SDK setup. For iOS, you need to Xcode installed to run the simulator. Ensure that these emulators are configured for your IDE of choice. For the iOS simulator, we developed using either the iPhone 14 Pro Max or iPhone 15 Pro Max. For further develop, choose either one to be safe.
- **Android or iOS Setup**: For Android, you must have Android SDK setup. Windows or Mac users can choose Android development. For iOS, you need to Xcode installed to run the simulator. Only Mac users can run the iOS emulator. Ensure that these emulators are configured for your IDE of choice. The app should be tested on both systems, so it's best to have at least one team member on each platform.
- **Google Places API Key**: The Geolocation check in relies on the Google Places API, which requires an API key.
- Create a directory under 'bu_passport/lib' named 'config'
- Create a file named 'secrets.dart' and add your API key in this file as follows:
Expand All @@ -33,7 +33,7 @@ flutter pub get
```
Since our application is built using Flutter, the command above will download all the necessary dependencies to run the project.

3. Install pod Files
3. Install pod Files (only Mac users)
Before running this app for the first time, you have to install pod files. To do this, ensure that you are in the '/ios' directory and execute the following command:
```bash
pod install
Expand All @@ -49,8 +49,12 @@ selected before running this command. \
Link to [Troubleshooting](#troubleshooting) for errors with running the app or missing dependencies.

### Features
- **Centralized Section for Events**
- **Login and Profile**
- Users can easily login with their BU email
- Users can update their name, profile photo, and other personal details on their profile page
- **Event browsing**
- Users are able to see upcoming and ongoing events either in a list view format in the explore page or in a calendar format
- Users can search for events using specific criteria such as location, tags, and point values
- **Event Saving**
- Users are able to save the events they are interested in, which will also be reflected onto their profile page
- **Geolocation Checkin**
Expand All @@ -59,6 +63,8 @@ Link to [Troubleshooting](#troubleshooting) for errors with running the app or m
- When a user successfully checks in to an event, they are awarded points
- These points are saved to the user, and earning 100 points will reward them with a raffle ticket
- There is a leaderboard page to showcase the highest raffle ticket earners
- **Passport**
- Certain events award users stickers for attending. They can add these stickers to their collection on the passport page

### Testing
To run all the automated tests under the '/test' directory for this project, ensure that you are in the '/bu_passport' directory and execute the following command:
Expand All @@ -72,7 +78,7 @@ flutter test test/file_name_here.dart

### Project Architecture

![alt text](./passportArchitecture.png)
![alt text](./architecture.png)

### Directory Structure

Expand Down Expand Up @@ -100,13 +106,6 @@ Web scraper of BU events calendar here
test/ \
All automated testing files are in this directory

### Current Known Issues, Bugs or Errors
1. [Check-in and Saved Event](https://github.com/BU-Spark/se-bu-passport-arts/issues/13)
2. [Web Scraper](https://github.com/BU-Spark/se-bu-passport-arts/issues/14)
3. [Passport](https://github.com/BU-Spark/se-bu-passport-arts/issues/15)
4. [JSON vs. ICS vs. Web Scraper](https://github.com/BU-Spark/se-bu-passport-arts/issues/16)
5. [Firebase Options API Key](https://github.com/BU-Spark/se-bu-passport-arts/issues/20)

<a name="troubleshooting"></a>
### Troubleshooting
- Pod Install Version Mismatches
Expand All @@ -119,20 +118,7 @@ All automated testing files are in this directory
## Future Scope

### Features to be Implemented
- **Passport and Stickers**: A passport where students can decorate with stickers to showcase their participation in events
- **Reviews, Photos and Ratings for Events**: A system that allows students to express their thoughts of attended events with ratings, comments, and photos taken at the event
- **Enhancing Points System**: Add more variability in how students can earn points
- **Google/BU SSO Login**: Allow students to login using their BU credentials or Google email for authentication
- **Events Filtering**: Allow students to filter for events based on category or tags of events
- **Interests Page**: Develop a page where students can select their interests, and see events based on their interests
- **Friends**: Develop a friends system where users can add friends and view each other's progress and participation levels

### Pages that Still Need Updates
- **Profile Page**: Adding a passport and additional features that have yet to be implemented, like a friends system
- **Explore page**: Add an events filtering feature based on event tags. How the events are displayed can be changed to, for example, instead of a list view format, the events can be sorted by date, or have some events be in a horizontal scroll format.

### Additional Notes Moving Forward
- Do additional research if an admin side of the app is needed/necessary
- Work on a new method of pulling events. Currently, events are pulled using a web scraper to fetch calendar data from the BU Arts calendar website. However, this likely wouldn't be the long-term solution. JSON or ICS files are avaliable, but additional research shows that these files may not be appropriate for the use case of this project (see JSON vs. ICS document on Google Drive).
- Find a way to generate tags for events. At the moment, BU has not generated any tags for their events. This may change in the future, but for now, a work around would be to discover a reliable method to generate tags for events. These tags are essential for implementing the interest page, event filtering page, and the passport page. Some additional insights are added to the 'JSON vs. ICS' document, but not comprehensive enough to implement a solution yet.
- Firebase Service testing is not full coverage. Methods that require to fetch a user instance are not implemented as we couldn't mock grading a new user from a mock authenticator/database. Figuring out a way to add these tests would be ideal.
- **Friends**: Develop a friends system where users can add friends, view each other's profile and passport, and invite each other to upcoming events
- **Event comments**: Allow users to comment on events in order to provide feedback to administrators
- **Privacy**: Give users the option to hide their profile from others and/or leave anonymous event comments

0 comments on commit 3d3fa15

Please sign in to comment.