https://github.com/nociza/ucb.xyz https://youtu.be/t6h0zlvFOtE

UCB.xyz

Background:

Quarantine has separated students from each other and it has been harder than usual to seek help from peers. Inspired by the current lack of a convenient platform for tutoring in the CS department (Or rather, all of berkeley), we decided to create a general full stack solution for all tutoring in Berkeley, which would greatly enhance the tutoring experience for both students and tutors alike. Stakeholders: Students who are in need of tutoring, and students who are willing to help others, make friends, etc. Summary: UCB.xyz is a tutoring platform linking up Berkeley students who want to tutor and who need tutor.

Flow:

Everyone can be either a tutor or a tutee, and would be able to switch between the two personas easily. As a tutee, the person should be able to input their subject of interest on their main page and they can input time slots on the Bcal calendar to indicate their preferred time of tutoring. As a tutor, the person should be able to set the subject they want to tutor and see a calendar with an aggregate of all the students’ timeslots. The calendar would demonstrate the density of students of a certain time slot with color-codes, the darker the color the more student requests for that specific time. Once the tutor clicks on a slot on the calendar, they will see a list of students who signed up for that period, and they will get to choose which student they are teaching. The students would be ordered according to weighted criteria of “times tutored”, ascending, and “Tutoring Score”, descending. The list would only show a set number of students from the top of the list ordered by the heuristic. Clicking on that student will bring the tutor to a page with recommended meeting places, using the octo api to get the nearest open library/dining hall to both the tutor and the tutee. After choosing the meeting place or manually entering a meeting place/zoom link, an email notification would be sent to both parties to confirm.

Additional integration with Zoom API can be made to automate the online meeting pipeline and create and destroy zoom meeting rooms on demand. Potential development would involve a special “Tutoring Score” that comes with priority prerogatives that the student can use to get tutors faster. Tutors can accumulate the score by teaching, and we are planning to talk to instructors to implement office hour queue prioritization with the score taken into account, so there would be more people that are incentivized to tutor.

Factors to consider:

The current implementation is dependent on the good faith on the tutor’s side, because the tutors get to choose their student, so they’re expected to show up to the meeting. It is possible to implement rating systems and evaluation forms to mitigate potential problems from the tutors’ side(one potential implementation would be to deduct tutoring score/lock future sessions if the tutor didn’t show up) There is also no limit on the number of timeslots a tutee can sign up to, but that is under control since the tutors can see how many sessions a certain tutee attended within a certain time period, and the more session a tutee attend, the lower the priority.

The signup process is currently limited to Berkeley students, but that is not a safety guarantee. In a worst case scenario, there could exist safety issues, harassments, and problems regarding prejudice. These issues would be hard to deal with, but hopefully with the review function implemented for both sides, it would be easier to deter such behavior.

Implementation:

Full Stack MERN solution with redis caching. Integrated with Google Calendar API and OCTO API.

Built With

Share this project:

Updates