Skip to content

MelissaChengPeiYee/Orbital_StudyBuddy

Repository files navigation

Study Buddy - Your complete online study platform

Girl in a jacket

Motivation

Have you ever felt unmotivated to study for a module or perhaps in the process of revising course materials, you bump into a question and are seeking immediate response to your queries? Obviously your TAs and lecturers won’t be available 24/7 to attend to your questions, so a study group might just be what you need!


Forming a physical study group isn’t easy given social distancing restrictions nowadays, and finding a perfect spot for it can sometimes be troubling. With the advent of a virtual study group app, you can stay at your own place and have an informative discussion with your course mates, at anywhere, anytime.

However, here comes the problem. How can you search for course mates with the same need as you? You can’t just approach and ask every single one you met, let alone comparing each other's schedule and agree on a timeslot. Especially with COVID, you may not even get a chance to meet your module-mates in person. The time you spent to find a whole bunch of suitable study group mates may be used for more meaningful stuff. Therefore, a platform which enables one to create or join a study group according to their available time might just come in handy.

Aim

We hope to be able to provide users with a platform for them to participate in different study sessions for their own benefit. Here, they will be able to join different groups according to their preferred time slots. Additional features are tailor-made to ensure that their user experience is enhanced to the maximum.

User Stories

General Activity General User Task User Stories
Enter the platform Access to the platform As a developer, do I want to ensure that only university/school students/just NUS members can access the platform as a safety measure?


Join a study group


Browse study group based on interested subject

As a developer, I want to provide users with a list of available study groups according to the module he/she inserts
As a user, I want to know the list of existing study groups based on the module I input
Pick a study group based on preferred time slot

As a developer, I want to enable users to know the timeslot of each available study group sessions
As a user, I want to choose to join a study group based on the timeslot that suits me

Create a study group

Insert a module As a host, I want to create a new study group by first inserting my module
Insert a time slot As a host, I want to insert my desired time slot
Insert max no of participants As a host, I want to limit the number of participants for my study group sessions to avoid overcrowding
Insert meeting details As a host, I want to able to key in my meeting details.

Manage vacancy


Handle number of participants in a study group

As a developer, I want to make a study group available if it is still vacant
As a developer, I want to make a study group no longer visible to user
As a user I want to see the number of vacancies left and total number of participants in a study group (e.g. 5/8)
As a user, I want to be able to control the number of participants I let into my study group.
As a host, I might want to close all vacancies after a certain point of time.
Chat Chat with other users As a user, I want to be able to chat with other users to liven up the study atmosphere.

Technologies used

-Firebase
-React Native
-Redux

How are we different from other similar platforms?

Build in group chat forums:

Questions can be asked and answered within the study groups, but the focus of the application is for the creation of said study groups and enabling people from a module to create such a study group in the first place.

Telegram/Other messaging applications:

We provide a messaging feature for easy communication between study group members, and for the sharing of notes. Unlike other messaging apps, you do not need to be invited to join a study group on this application.

Our features

Feature Functionality
User Account Management
Log-in Allows users to enter their credentials and sign-in to their account of the app if they had already created one.
Log-out Allows the users to sign out of their app and brings them back to the log-in page.
Sign up Allows users to create a new account with their email-address. Upon signing up, the users need to verify their email address before signing in.
Homepage
Change profile pic Allow users to customize their profile picture.
Change cover pic Allow users to customize their cover picture.
My group list Allow users to view the groups they have joined or created.
Join a group Allow users to join a study session they are interested in.
Create a group Allow users to create a study session with their preferred timeslot.
My Group List
View Allow users to view the group details such as meeting date and time, access to the meeting link.
Chat
Send message Allow users to interact with other users within the same session via chat function.
Connect meeting apps
Direct access to other meeting websites or apps Allow users to connect to other meeting apps such as Google Meeting or Zoom within the app.

Our development plan

Milestone 1 Milestone 2 Milestone 3
1. Add login and signup features and have firebase as backend user management tool. 1. Complete the create a study session feature.
2. Complete the join a study session feature.
3. Complete the view my group list feature.
4. Add additional features such as upload notes and chat to each groups.
5. Add customize features such as able to change profile picture.
6. Perform minimal system testing.
1. Perform bulk user testing.
2. Fix bugs.
3. Complete the implementation of the upload notes feature and chat function.
4. Add additional features.

Milestone 2

Core features developed

Features Description
Create a study session Users can create a session by inputting their desired timeslot and subject, and also provide their meeting link.
The system will then check if the meeting details the user input is valid, if there is an error, it will prompt the user to key in again.
Join a study session Users can browse through a list of upcoming study sessions and can join if the user is interested. A study session will no longer be visible if it hits the maximum capacity set by the host, or it has passed the meeting date.
Direct access to zoom Users will not be required to remember the meeting details. Just click on the meeting link and they will be directed to the meeting.
Chat within a group Users can engage in informative chat sessions through our build-in chat feature.
Customization Users can further customize their profile picture and cover picture within the app.

Additional features to be developed during Milestone 3

Features Description
Filter Users can filter search the groups they want to join via searching for the subject in the search bar.
Upload resources Users can share their resources to the group or download other users' shared notes to their device.

Problems encountered & System testing

System testing 1 - Customization : Profile pic and cover pic

Problems encountered:
1. The uri provided is the local file path of the user's device. It has no problem to render the picture when the user logs in to the device he uses to upload the image. However, when he changes to other devices and log in, the profile pic fails to render.
2. Upon creating an account and using the app for the first time, the profile pic and cover pic is blank (the user hasn't choose their images) , so some users might not know they can customize their profile pic. [Problem solved by a default profile pic and cover pic will show up before the user changed their profile pic and cover pic.]

System testing 2 - Create a group function

Problems encountered:
None .
The create function works well, and the system will make sure the input details are correct before they allow the users to create a study session.

System testing 3 - Join a group function

Problems encountered:
1. Upon clicking the join button, the user information will be updated to firebase, but the screen does not refresh automatically, and the group that the user just joined still show up on the screen. Only if the user exits the join screen and reenter the screen, the data will be updated. [Problem solved by everytime a user join the group, we direct them to our homepage and a pop up message will show that they have successfully join the group.]

System testing 4 - Chat function

Problems encoountered:
1. Rendering chat avatar if use profile pic as chat avatar (same issue as mentioned in System testing 1) [Problem solved by rendering user initials as chat avatar]

System testing 5 - Direct to zoom meeting function

Problems encountered :
None. Works fine.

Milestone 3

Additional features developed

Features Description
Filter search Users can filter search the groups they want to join via searching for the subject in the search bar.

Problems Encountered and Bugs Squashed

  • Orbitee 1's code from Milestone 2 cannot run on Orbitee 2's device. Fixed by removing React-Native-Firebase packages.

System Testing

We conducted system testing screen by screen before publishing our app.

You can find the details on system testing here.

User Testing

We conducted a survey through Google Forms which can be found here.

The survey included a small task list for participants to attempt and try. They include the main functionalities of our extension.

You can also find the questions and results of our surveys here.

External links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published