The Virtual Study Room is an online platform designed to address the lack of motivation in existing study tools. We noticed that many existing tools either lack features to motivate learners or include unnecessary distractions that can hinder learning. Our goal was to create a space where people could come together to study while also enjoying streaming music services and real-time interaction with others. We believe that this combination of features will create a supportive environment that encourages learning and motivates users to reach their goals
The platform features real-time streaming music services to keep users engaged while they study. The platform also features an award and coins system with a leaderboard to motivate users. Users can earn coins by achieving certain goals, and use them to unlock more profiles, music, and backgrounds.
The platform also has a private room feature where the owner friends can join and study together while enjoying the available music.
Here's the list of the technologies used in the project:
- Node.js
- Express.js
- React
- MongoDB
- Socket.IO
- Node.js: Make sure you have Node.js installed on your local machine before proceeding with the installation. You can download Node.js from the official website: https://nodejs.org/en/download/
- npm: npm is the package manager for Node.js. It comes bundled with Node.js. Make sure you have a recent version of npm installed. You can check the version of npm installed by running the command:
npm -v
.
Clone the repository using the following command:
git clone https://github.com/UOA-CS732-SE750-Students-2023/project-group-amber-axolotls.git
Change to the project directory:
cd project-group-amber-axolotls
Execute below code from project directory.
To install the server dependencies, run the following command:
npm run install-server
This will install all the required dependencies for the server.
To install the client dependencies, run the following command:
npm run install-client
This will install all the required dependencies for the client.
To install all the dependencies (server and client), run the following command:
npm run install
This will install all the required dependencies for the server and client.
Execute below code from project directory.
To start the server, run the following command:
npm run server
This will start the server and listen for incoming requests at address http://localhost
If you have already opened up a terminal to open the server / client, open up another terminal ro run the client.
To start the client, run the following command:
npm run client
This will start the client and open it in a new browser tab.
Note!
The frontend must be run from
http://localhost
and not any other address such ashttp://127.0.0.1
. This is because we use Firebase authentication, which requires the domain to be whitelisted for security purposes. By default, onlyhttp://localhost
is whitelisted for authentication.
By default, the frontend will try to connect to the backend server running on http://localhost:4000
. If you need to change this URL, alter the contents of .env
file:
VITE_SERVICE_URL=http://localhost:4000/api
VITE_SOCKET_URL=http://localhost:4000
Replace http://localhost:4000
with the URL of your local backend server.
Currently, the application has been deployed at url https://amber-axolotls.herokuapp.com
To connect to the deployed backend server, you can change the .env
file to point to the remote URL. For example:
VITE_SERVICE_URL=https://amber-axolotls.herokuapp.com/api
VITE_SOCKET_URL=https://amber-axolotls.herokuapp.com/
To allow you to try out the platform with coins to purchase, we have provided two different user accounts. Here are the login details:
- Username:
tester1
- Password:
password
- Coins: 100000
- Username:
tester2
- Password:
password
- Coins: 1200 (default value for new users)
Additionally, tester1
and tester2
have been set up as friends by default. You can use these accounts to test out the private room feature and study together while enjoying the music available on the platform. Please note that these accounts are only for demo purposes and should not be used for any other purposes.
The accounts also have friend requests sent from other existing accounts for you to see what it's like when someone sends you a friend request.
To run tests for only the client, go to project directory then use the following commands:
cd client
npm install
npm run test
To run tests for only the server, go to project directory then use the following commands:
cd server
npm install
npm run test
- Team Name: Amber Axolotls
Name | GitHub Username |
---|---|
Frank Ji | FrankJi3 |
Mike Ma | sma148 |
Qingyang Li | qingyang0506 |
Harry Qu | HarryQu1229 |
Yinuo Xue | yinuoxue |
Xiaoxiao Zhuang | cczhuang420 |