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.
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.
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. |
-React Native
-Redux
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. 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.
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. |
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. |
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. |
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. |
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.]
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.
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.]
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] Problems encountered :
None. Works fine.
Features | Description |
---|---|
Filter search | Users can filter search the groups they want to join via searching for the subject in the search bar. |
- Orbitee 1's code from Milestone 2 cannot run on Orbitee 2's device. Fixed by removing React-Native-Firebase packages.
We conducted system testing screen by screen before publishing our app.
You can find the details on system testing here.
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.