top of page

TeachReach

Where Knowledge Meets Connection. Start Your Educational Journey Now.

Screenshot_20240401-135758_edited.jpg
screenshot_edited.jpg
Vison

Our Vision

​Users will have profiles with details like name, pronouns, major and availability. Tutor’s profiles will also include hourly rate, courses they tutor, ratings and feedback from students, enabling students to find a tutor that suits their needs. To maintain a safe and respectful learning environment, users can report inappropriate behavior or report tutors for failing to adequately carry out a tutoring session.  

TeachReach is valuable due to the nature of post secondary education. It addresses the lack of personalized aid, which is often absent in this stage of education. The platform also enables students to connect with tutors faster and more directly, while providing the ability to personally select a tutor that meets their needs. Financial strain associated with post-secondary education is also a growing issue. The platform will provide high-achieving students with an accessible and flexible opportunity to earn income.

TeachReach is a platform that connects students seeking academic help with qualified tutors. The platform provides a convenient way for students to find and book sessions with a tutor for a course. Tutors on TeachReach are verified individuals who have excelled in their respective courses as students themselves and possess first-hand experience to guide and support struggling students with their individual needs.  

Administrators play an important role in maintaining platform integrity by reviewing reports, verifying user credentials, and taking appropriate actions. The platform allows administrators to address any issues promptly, fostering a secure and trustworthy learning environment.  

TeachReach will take a small percentage of the tutoring fees, with the majority going to the tutors. Success for TeachReach is defined by three key metrics. Firstly, our goal is to cultivate an engaged user base, striving for 1000 active users. Secondly, we aim for the platform to extend its impact to a minimum of five distinct post-secondary institutions, each with a user base of at least a hundred students. Lastly, we aim to achieve a minimum monthly profit of $10,000, ensuring the platform's viability and sustainability for the product owner. If all of these targets are met, we consider TeachReach to be a success.

Features

Features

Account Creation

TeachReach facilitates effortless interaction by enabling users to create profiles, register accounts, and securely log in.

Account Management

Users can effortlessly update vital details about themselves. We prioritize flexibility and customization, ensuring a seamless experience that adapts to users' evolving needs and preferences within our platform.

Search

Whether seeking assistance in a specific subject or looking for a tutor nearby, our Search feature simplifies the process, ensuring students connect with tutors who align with their requirements.

Sort

Our Sort feature simplifies the search for tutors by enabling users to set multiple filter criteria at once, including price range, minimum rating, and course code. Additionally, users can sort results based on criteria like price and rating, ensuring tailored and prioritized search results.

Booking

TeachReach offers seamless booking functionality for tutor sessions. The process of scheduling sessions is made convenient and efficient, ensuring both tutors and users can easily manage their appointments and make the most out of their learning experiences.

Payment

TeachReach allows convenient payments for tutor sessions, ensuring effortless transactions and easy tracking for both tutors and students. With capabilities like tracking earnings, and providing session history, users can efficiently manage their finances.

Communication

Students can communicate with their chosen tutors. With direct messaging between tutors and students, we maintain a clear record of their conversations and establish effective communication channels, equipping tutors with the ability to plan lessons ahead of time

Schedule Management

TeachReach allows students and tutors to access their upcoming, pending, and past sessions with ease. This enables students to stay organized by providing clear visibility into their session status and details.

Feature Demos

Account Creation

The ability for users to access the platform and view relevant details about other users.

Serach

The ability for students to find a tutor.

Booking

The ability for tutor sessions to be requested and booked.

Communication

The ability for students to message with their desired tutor.

Account Management

The ability for users to update important details about themselves.

Sort

The ability for students to find a tutor that best fits their needs.

Payment

The ability for students/tutors to pay/receive income for their tutor sessions and track their order history.

Schedule Management

The ability for students/tutors to view their upcoming sessions, pending sessions, and past sessions.

Reflection

Reflections on our Development Journey 

What went right

In the development process, significant progress was made in Iteration 3. Key features, such as Booking and Communication, were successfully implemented, enhancing user interaction. Additionally, the UI was improved for better navigation and usability. These advancements mark a successful phase in the development process.

What we would do differently

If given the opportunity to start over, we would prioritize thorough planning and discussion of UI design and requirements before any code is written. This approach would provide clear guidance on the necessary logic and persistence functionality needed to support the UI. Additionally, we would improve our project management approach by ensuring comprehensive documentation and setting firm deadlines, even if they may not be initially appealing. This would help establish clearer milestones and expectations, enhancing overall project organization and progress tracking.

What took the lease/most time

The Communication feature proved to be the most time-consuming, originally estimated at 9 days but actually requiring 12 days for completion. Conversely, the Account Management feature took the least amount of time, with an estimated duration of 2 days and an actual completion time of 4 days.

Feature success

Our Sort feature surpassed our initial expectations. Not only does it work flawlessly to filter tutors with a variety of filter criteria, but it also boasts an elegant UI. 

Development Techniques

We loosely followed an agile approach but did not adhere to any specific methodologies such as TDD or pair programming.

Outstanding Bugs

There are potential issues within Schedule Management. Tutors have the ability to set availabilities with identical start and end times. Additionally, within Communication, it's possible to send empty messages. These will be fixed sometime in the future.

Conclusions from Project Experience

Developing large projects such as this one in a group can be quite challenging. A great deal of organization is required. In our final iteration, we found it extremely helpful to have someone designated in a leadership role. We had a member check in with all team members regularly and were there to help each individual, especially when facing a problem related to a part of the project that they are not familiar with.

Overall architecture

The architecture follows MVVM, with HSQLDB serving as the Model, Java files handlers as the ViewModel, and Android UI as the Views, constituting a three-layer structure. The database stores user data, while Handlers manage functions and UI requests, interfacing with the database. The View engages users by tracking interactions and preparing necessary information

What went wrong

A significant setback in the development process arose during Iteration 2 due to last-minute changes to the database schema. This delay cascaded into subsequent development stages, impeding progress on other features and testing. This was a result of limited cooperation and communication among team members. Furthermore, technical issues during system tests in Iteration 3 led to the omission of tests for certain features.

Project timeline

  • Planning and Design: Took approximately 4 weeks, comprising 3 weeks for Iteration 0, and 2 days for each subsequent iteration.

  • Development: Spanned 1.5 months, with 2 weeks dedicated to each iteration.

  • Testing and Debugging: Took 1.5 weeks, encompassing approximately 2-3 days for each iteration, with a longer duration for Iteration 3.

Brilliant design decison

One standout design decision was implementing our logic interfaces as a Facade. This approach effectively conceals the complexity of the underlying logic, presenting a simplified interface for interaction with the presentation layer. This decision has significantly enhanced the overall efficiency and maintainability of our system.​

Additional technologies

In addition to the required technologies, we utilized AndroidX and Material UI for the front-end UI, along with BCrypt for hashing and verifying credentials.

Changes from Iteration 0

Our project experienced minimal changes from iteration 0, except for the decision to exclude the development of the admin account and its associated features. We deemed these features non-essential for the application's core functionality, while the remaining features and user stories remained largely intact.

Lessons Learned

We learned the importance of communication and frequent check-ins. We struggled in some iterations as we were not communicating effectively. Communicating the dependencies between features and deadlines for those dependencies were our largest problems. In the future, we will work to better examine our tasks and communicate better to understand the dependencies between them.

Contributors

Contributors & Skills Developed

“Gained a lot of experience with unit testing, specifically using JUnit and Mockito. Also gained experience using HSQLDB.”

Aidan Labossiere

“Gained experience on HSQLDB, unit test, integration test, documentation, architecture analysis, code review, UI design, Android components, and project management with agile and time estimation.”

Chin Wei Mak

“Learned how to design and create Android components, and write comprehensive test suites with JUnit and Mockito that ensure an application's reliability and data integrity. ”

Kelvin Oo

“Gained development experience on 3-tier architecture, JUnit tests and HSQLDB. Learned some Android UI components that make the app feel less basic.”

Kin Tat Ho

“Gained experience on Agile method, 3-tier architecture layer, SOLID programming, reviewing code, system test and UI designs on the Android studio.”

Rafia Islam

bottom of page