Panos Matsinopoulos

Senior Software Engineer: Love Writing and Reading Software, Taking Entrepreneurial Risks, Teaching Computer Programming & Blogging here or in many other places. I also Love Music and I can call myself a small pianist!

Book & Table

Live Demo

You can see a live demo of the application here. You can sign up as student in order to have access to the internals of the app.

Application Purpose

It’s a marketplace for students/parents/learners to find tutors on various subject areas. Besides the matching, the application offers various features to their users:

  1. Ability to Invite Friends, via email and via Google contacts.
  2. Students rate their experience with the tutor.
  3. Text/SMS notifications for various important events.
  4. Full integrated messaging functionality.
  5. Follow up and history on all lessons with the tutors.
  6. Payments via Stripe payment gateway.
  7. Tutors are being paid out to their Bank Account (using Stripe API).
  8. Tutors form teams and they can refer a student to another tutor and earn money.
  9. Point system that allocates points to tutors and affects the ranking of tutors on search results.

Challenges

The biggest challenges for me on this project, things that I really enjoyed and learned new stuff:

  • Inherited a project code base that didn’t have a single test. So, I had to quickly write tests for the core features, at that time, of the app.
  • Full front-end development. That was my first project that I did full front-end development. I can finally call myself full-stack engineer. I am very proud of the result, although, the enemy of good is the better one, which means that I could always have done it better. The final result is fully responsive on mobile devices.
  • Mobile API with authentication. That I enjoyed it very much. My first API to support the mobile iPhone application. It had to support authentication both with email / password and with social networks like Facebook and Google.
  • Apple Push Notifications. Had to integrate with Apple Push Notification Service.
  • Stripe Managed Accounts. I have worked a lot with the Stripe API to create managed accounts. Since the app was not just to charge the users. Had to do it on behalf of the tutors.
  • Stripe Bank Accounts. I had to implement the bank account pay out integration with Stripe.
  • Integration with Twilio for SMS/TEXT notifications. Both application-outgoing and application-incoming flows.
  • Background Check and integration with Checkr. Had to follow the exact requirements about how pages would be designed and implement callbacks to get check results.
  • Swagger. The tool to create documentation for APIs. This is the page that has the documentation of the API that I have designed: Book&Table Mobile API Documentation.
  • Client-side page walk throughs and interactive help. I have used two tools for this. Hopscotch and Sideshow.

Technologies Used

  • Deployed on Heroku
  • PostgreSQL database
  • Ruby on Rails
  • Javascript & jQuery
  • Twitter Bootstrap 3.0 - The app is fully responsive

Ruby on Rails Special Considerations

For testing I have used:

  • RSpec
  • Capybara
  • Cucumber
  • SitePrism
  • FactoryGirl
  • VCR
  • and other gems

Project Data

  • About 18 months
  • About 250 models
  • About 100 tables
  • About 100 controllers
  • About 460 cucumber scenarios
  • About 1100 rspec unit tests
  • About 130K lines of code

Comments