Zachery DeLong email: zpdelong@ncsu.edu
Monica Metro email: mgmetro@ncsu.edu
Zhangqi Zha email: zzha@ncsu.edu
We present a peer to peer collaborative tutoring system that is based on peer reviews and rewards earned through tutoring. According to our preliminary studies, the current proportion of students who need outside tutoring for clarifications of conceptual doubts, is considerable. A platform designed for students where they can help each other to clear such doubts and help them perform better would be much appreciated. Although students have many resources available in the university like open office hours of TA, professor, etc. , still many students hesitate to ask TA/Professor the doubts and queries that they have. Also, they are more comfortable in asking silly doubts to their peers without the fear of losing marks. Hence, the system to facilitate this process and maintained by students themselves would create a positive impact in the campus community.
With the application's server up and running:
-
Signup for the bot service (see Signup below).
-
Follow instructions for user use cases depending on what type of user you would like to be. Wolftutor has two types of users: students and tutors. Users are automatically students at signup, but can choose to become a tutor.
- Go to the Slack page hosting the app and register a slack username.
- Click on the bot application found under the left App panel.
Picture
![img]() - Type
hiinto the bot chat box and send. - Click
Yesafter the Wolftutor bot responds.Picture
![img]()
- Find a tutor - Type
find a tutorinto bot chat box. Students will first select the desired subject, then a tutor quality preference if any. The bot will return the tutors in a recommended order. - See the reviews for a tutor - click
Reviewsunder a tutor's displayed informationPicture
![img]() - Schedule a 30 minute tutoring session - Click
Scheduleunder a tutor's displayed information. Next, clickBookon the time slot you desire.Picture
![img]() - Review tutor from last session (students have until the end of the day to review their tutor) - Type
Reviewinto the bot chat box. Next, enter review fields as prompted andSubmit. - View past reservation history - Type
historyorreservation historyinto the bot chat box. Displays tutor and subject reservation history. - View currently scheduled tutoring sessions - Type
my reservationsinto bot chat box. - View point balance - Type
rewardsinto bot chat box - Buy more points - Type
buyinto bot chat box
- Become a tutor - Type
become a tutorinto bot chat box. - View tutoring subjects given to WolfTutor - Type
my subjectsor justsubjects - View tutoring availability given to WolfTutor - Type
my availabilityor justavailability - Redeem points - Type
redeeminto bot chat box
- Setup the repository and the environmental variables file
- Install mongoDB and set up the database
- Install Node.js and ngrok
- Setup the Slack page
- Start the WolfTutor server
- Clone the git repository from https://github.com/NCSU-CSC510-Group-E/WolfTutor.git
- Open the .env.example file and save it as .env. This is the environmental variables configuration file.
- Download the Community Server edition of mongoDB.
- Make sure the /bin path is added to your system's environmental variables.
- Run the server via
mongod. (mongod.exe found in mongo's /bin directory) - Use 'MongoDB Compass Community' to connect to your server running on the default port. Add the collection
Subjectto theadmindatabase. Add at least one document (a course subject) to the new collection asname: 'Subject'. These will be the course subjects available to WolfTutor users. After adding the documents, you may close Compass. - Add the URI of the mongo database to the
MONGO_CONNECTION_STRINGvariable of the .env file. For local host using default port 27020, it should bemongodb://localhost:27020/database_name
- Download and install Node.js. You can check if node is installed via
node -v. - In your command prompt, go to the project repository and run
npm installand then runnpm updateto ensure all packages are installed and up-to-date. - Install ngrok via
npm install ngrok. - With your mongoDB server running, stat ngrok via
ngrok http 3000for port 3000. - The URL given by ngrok will be added to the Slack app as detailed in the Slack Page section. (The ngrok URL is found at the 'Forwarding' field and looks like
https://unique_characters.ngrok.io)
- Create a Slack Workspace
- Create a new Slack App at Slack API
- While in the new app's settings, under the
Settingsside-panel, click onBasic Information. Copy theVerification Tokenfound underApp Credentialsand paste it into theSLACK_VERIFICATION_TOKENof the .env file. - Go to the
Bot Usersside-panel andAdd a Bot User. Make sureAlways Show My Bot as Onlineis turned on andAdd Bot User. The bot is responsible for interacting with the NodeJS application via the interactive elements (buttons, prompts, etc.).. - Go to the
OAuth & Permissionsside-panel andSave Changesafter adding the followingScopes. Then,Install App to Workspace(at the top).- Add a bot user with the username @<bot_name>
- Post to specific channels in Slack
- Access user’s public channels
- Access information about user’s public channels
- Send messages as <app_name>
- Send messages as user
- Access content in user’s private channels
- Access content in user’s direct messages
- Access information about user’s direct messages
- Modify user’s direct messages
- Access your workspace’s profile information
- View email addresses of people on this workspace
- Add the
OAuth Access Tokenavailable after installing the bot to theSLACK_ACCESS_TOKENfield of the .env file - Add the
Bot User OAuth Access Tokenavailable after installing the bot to theBOT_TOKENfield of the .env file - Go to the
Interactive Componentsside-panel andEnable Interactive Components. Add the running ngrok URL to both theRequest URLandOptions Load URL. Add/messageto the end of the URLs andEnable Interactive Components.
- Navigate back to your WolfTutor directory and start the server with
npm start. - To check if the server is running, viewing your localhost in the browser should show a WolfTutor title page.
Production setup is the same as local development, with a few exceptions:
- Instead of using ngrok to connect Slack to the database, use the home URL of the app and add
/messageto the end. - Make sure you use the correct URI for your mongo database
- In your git repository, the .gitignore will need to be altered with these changes:
- Remove .env from the .gitignore
- Make sure package.json and package-lock.json are not in the .gitignore
