My project was to build an on demand homework help marketplace. I didn’t quite make it to a functional prototype, but I was able to tackle several key features, such as logging in, requesting help, tutors can offer help and students can accept that help. In theory I wanted to open up a webchat so the student and tutor could talk face to face, but it felt a little aggressive to try to tackle the webchat portion in the little time we had considering I’ve never worked with sockets or chat interfaces. So I settled for trying to build a text style chat, and I got about halfway there before time ran out to write this post.
So for the app:
The client is a student who can request for help on a certain homework problem and associate a monetary bid to their help request.
The workers are the tutors on the other end who have a search mechanism to filter student requests, and the ability to offer their help to the student if they see a problem that they know they can assist with.
The job is the tutoring session, the bounds of which are not defined by the app. The tutor and student can chat as long as they see fit, but when the interaction is over, the tutor will receive the bid price for their assistance. In theory, the idea is that bids are between $3 and $5, and tutors can probably help students within 10 minutes, meaning if they put in an hour’s worth of work helping students, a tutor could potentially make anywhere from $18 – $30 per hour, not accounting for fees charged by the service.
This app is obviously far from done. Things that need work:
- The chat functionality doesn’t work
- the student can’t upload photos
- the tutor dashboard is basically empty
- the request filtering doesn’t remove items that are currently being worked on
- The video chat feature hasn’t even been touched
- The bid feature hasn’t been touched
- it needs some more styling
What I did get working, though, was:
- Login functionality, including a hashed, secure password using a module called Passport
- Requests for help are saved to a MongoDB database using MLabs
- Sessions are passed with cookies to keep the user logged in as they navigate around the app
- Basic searching of requests works for tutors, but the status of these requests aren’t updated properly
The code can be found here, on github