FBLA Mobile App Development 2020-2021
Marvin Ridge High School
Team Members: Shitij Govil and Vibhu Gomatam
Resudent is a social platform that utilizes a profile, friend, and chat system to give students interested in their professional careers a platform to meet others. Resudent forms large networks of people interested in specific topics throught the world, and it allows students to learn from each other. Resudent is a novel idea in the fact that it is targeted specifically towards students, which no apps have done before.
- Login (Internal and Facebook)
- Your Profile
- Friends
- Chat
- Search
- Report Bug and Suggestions
- User has the ability to create an account using the Sign Up button.
- Requires an Email, School, User Image, Short Description about the user, Username, and Password.
- Alternatively, the user may sign up using their Facebook account.
- User has the ability to Log In to an existing account with the Login button.
- Requires Email and Password.
- Alternatively, the user may log in with their Facebook account.
- User Authentication is handled by the Firebase Authentication API and user data is stored in Cloud Firestore.
- User Authentication for Facebook is handled through both the Firebase Authentication API and the Facebook Authentication API.
- Displays basic profile information.
- Name, School, Description, and a Profile Picture uploaded from the device.
- Data stored in Cloud Firestore.
- Image stored in Firebase Storage.
- Displays academic and extracurricular information.
- Classes, Test Scores, Topics of Interest, Achievements, Volunteer, and Work Experience.
- Stored in Cloud Firestore.
- User can edit their Username, Profile Picture, and School as well as the 'Description', 'Classes', 'Test Scores', 'Interests', 'Achievements', and 'Experiences' categories.
- An edit profile button at the top-right navigates user to the edit profile page.
- For each category, a user can add a field or remove a field.
- A '+' icon for each category allows users to add a field to a specific category.
- A garbage-bin icon for each field allows users to delete a specific field from a category.
- A pop-up allows users to edit a specific field for the category they choose.
- Search for users using categories.
- Seach by name of user.
- Search by common interests of user.
- Search by schools of user.
- Searching returns a clickable preview of others' profiles based upon the type of query.
- Preview contains User Image, Username, and School.
- Clicking on the preview navigates the user to the profile page of the selected user.
- Contains data about their Name, School, Description Profile Picture, Classes, Test Scores, Topics of Interest, Achievements, Volunteer, and Work Experience.
- Displays two buttons that allows others to make friends and chat with the selected user.
- Users can send friend requests to each other by visiting others' profile page and clicking the friend request icon.
- This sends a request to the selected user who has the option to accept or decline the request.
- Users can view their friends and pending requests on a separate page, allowing for quick access to their profile.
- All data pertaining to friends and pending requests is stored in Cloud Firestore.
- Users can create chats with anyone by navigating to the desired user's page and clicking the chat icon.
- Clicking the icon will either create a new chat if one doesn't exist, or navigate to an already existing chat.
- Users can see all their chats from a separate page that displays a clickable preview of the other users the current user is chatting with.
- Clicking on this preview will open up the existing chat.
- Users can send messages back-and-forth that are stored indefinitely.
- All data pertaining to chats is stored in Cloud Firestore.
- Allows user to report any problems, bugs, or suggestions.
- User may input contact information.
- Reports sent to Cloud Firestore.
- My Profile: takes user to the my profile page.
- Friends: takes user to friends page, where they can accept/decline friend requests and navigate to friend profiles.
- Chat: takes user to chat page, where they can locate existing chats.
- Search: allows user to search by name, school, or interests.
- Other: takes user to a page where they can report a bug or logout.
These are the instructions to run the files on GitHub on a local device.
- Install Git
- Install Flutter
- Choose the correct operating system and follow the outlined steps
- Install VS Code
- Copy the following URL: https://github.com/horsefeedapples/fbla_app.git and then open VS Code
- Open the Command Pallet on VS Code by typing
ctrl+shift+p
and type Git: Clone and press enter - Select the folder where the files should be downloaded
- Open the Command Pallet on VS Code by typing
- Get all the dependencies and packages by typing
flutter pub get
into the command prompt - The app is ready to run
- Install Android Studio
- Copy the following URL: https://github.com/horsefeedapples/fbla_app.git and open Android Studio
- Click "Check out project from Version Control" and select "Git"
- Paste the URL and select the desired directory location for the project. Then click the clone button
- If prompted "Would you like to create an Android Studio project for the sources you have check out," select "No."
- When prompted to open the project, choose the existing project and click OK
- When the project is open in Android Studio, type
flutter pub get
into the command prompt to get all dependecies
- The app is ready to run
- Made with the Flutter plugin for the Dart Language.
- Google's Firebase used for Database, Data Storage(for Image), and User Authentication.
- Connected to app through RESTful API.
- Create, Read, Update, and Delete operations used.
- Native support for both iOS and Android.
- Analytics for various categories are available. Categories include:
- Number of Facebook and regular users.
- Location, Demographics, Devices, and Interests of users.
- User retention and engagement.
- Document Read and Writes.
- Cloud Firestore - By firebase.google.com
- Firebase Auth - By firebase.google.com
- Firebase Storage - By firebase.google.com
- Image Picker - By flutter.dev
- Flutter Login Facebook - By innim.ru
- Provider - By dash-overflow.net
- Flutter SignIn Button - By Liu Zhiheng