SOBA
SOBA was a mobile application that functioned as a marketplace connecting learners with tutors based on their location, similar to services like Uber or UberEats but focused on education. The platform allowed users to search for and “order” or “reserve” a tutor who was skilled in a subject they wished to learn. This included a range of subjects from academic topics like mathematics and languages to hobbies and specialized skills such as playing a musical instrument or cooking.
Core Features
• Learner-Tutor Matching: Users (learners) could search for tutors in their area using geolocation services, making it easy to find a tutor nearby.
• Real-Time Availability: Tutors could set their availability, allowing users to see who was ready for a session in real-time.
• Booking System: Learners could book sessions directly through the app, specifying the subject they wanted to learn and the time slot that worked best for them.
• Payment Integration: The app handled payments directly, making it seamless for learners to pay for the session and for tutors to receive payment.
• Feedback and Ratings: Learners were able to provide feedback and rate their sessions, helping other users find high-quality tutors.
Tech Stack Overview
Frontend
• AngularJS: Used for building the user interface of the app. It provided a dynamic and responsive experience for both learners and tutors. AngularJS allowed for two-way data binding, making it ideal for real-time data updates such as availability status and booking confirmations. It also made managing the user interface state efficient, ensuring that updates like new booking requests and tutor availability were reflected instantly.
Backend
• AWS Lambda: A serverless compute service that handled the backend logic. AWS Lambda processed incoming requests from the frontend (such as booking a tutor, updating availability, and payment processing). It enabled scalable event-driven architecture, where functions were executed in response to specific API events, reducing the need to manage server infrastructure.
• API Gateway: Served as the entry point for all backend communications. It routed requests from the frontend to the appropriate Lambda functions, handling endpoints for user authentication, bookings, and payment processing. API Gateway also managed scaling and security measures like throttling and authorization.
• DynamoDB: A NoSQL database service used for storing data such as user profiles, tutor availability, booking records, and payment transactions. DynamoDB was chosen for its ability to handle large volumes of data with low latency, making it ideal for a mobile app that needed to handle many concurrent users.
Storage
• Amazon S3 (Simple Storage Service): Used for storing user-related assets, such as profile pictures, session notes, and other media files. S3 provided scalable and secure storage, ensuring that media assets could be easily accessed and served to users within the app.
Workflow
-
User Registration & Profile Setup: Learners and tutors registered on the app and created profiles. Tutors could set their availability schedule, and learners could browse through tutor listings.
-
Search & Match: Learners searched for tutors based on subjects and location. The frontend (AngularJS) made API calls to the backend (via API Gateway) to fetch available tutors.
-
Booking Process: Once a learner selected a tutor, a booking request was sent to a Lambda function, which verified the tutor’s availability and stored the booking details in DynamoDB.
-
Session Execution: On the day of the session, learners and tutors used the app to manage session time and logistics, using real-time data from DynamoDB to track session progress.
-
Payment Handling: After the session, payment processing was triggered through API Gateway, calling Lambda functions to manage transactions and update DynamoDB with payment records.
-
Feedback Mechanism: After each session, learners could rate their experience, which updated the tutor’s profile in DynamoDB and helped maintain quality in the tutor marketplace.
The combination of AngularJS for a responsive frontend and AWS’s serverless tools (Lambda, API Gateway, S3, and DynamoDB) provided a scalable, low-maintenance solution that supported the real-time needs of the app. It also ensured that the app could scale easily as the user base grew, minimizing infrastructure concerns while maximizing reliability and performance.