/Tutor-Me

The Tutor Me project is an idea that aims to provide a platform where students that need help academically can easily find a tutor that can help them with specific modules. This project will be useful especially now that the covid-19 pandemic has made it much difficult to have face-to-face conversations, ask for help with their studies from fellow students, and interact with lecturers for additional assistance. As with the rest of the world, every matter related to students is moving towards being digital and virtual.

Primary LanguageDart

Flutter CI/CD Tests .NET core FileSystemAPI.yml CI/CD Tests .NET core TutorMeApi.yml CI/CD Tests

GitHub language count GitHub repo size GitHub last commit
GitHub pull requests GitHub issues GitHub issues

image image image

image

CapsOn


Team Photo Retro Rabbit

Tutor Me

Project Description

The Tutor Me project is an idea that aims to provide a platform where students that need help academically can easily find a tutor that can help them with specific modules. This project will be useful especially now that the covid-19 pandemic has made it much difficult to have face-to-face conversations, ask for help with their studies from fellow students, and interact with lecturers for additional assistance. As with the rest of the world, every matter related to students is moving towards being digital and virtual. This project focuses on providing a platform to ease the process of:

  • Registering as a Tutor that can tutor certain modules for a price,
  • Registering as a Tutee that needs a tutor for certain modules,
  • The tutor should be able to select the modules he/she tutors for a fee,
  • The tutee should be able to choose which subject they need help with from certain tutors,
  • One-on-one chat functionality between Tutees and Tutors,
  • Group chat creation for students requiring assistance with the same modules or subjects,
  • Sending and receiving notifications when Tutor is found
  • Video calling functionality in-app to allow students to virtually meet After implementing these core functionalities of this project, we would start looking at additional functionalities like filtering tutors by gender to enable students to choose someone that they are comfortable with. We would also look into implementing a dark mode of the app for users that prefer it over light mode. The project will be implemented as a cross platform mobile app for Android and iOS.

Demo 1

Demo 2

Project Boards:

Demo 3

Project Boards:

Demo 4

Project Boards:

Applications

Android App Tutor Me Lite Admin Windows App










Project Technologies

  • Frontend: Flutter(Dart)
Why? We have a very good background of Flutter.
We learned and worked with Flutter during the summer holidays as preparation for this project, and a good background in mobile development.
Flutter enables cross-platform mobile app development, hence it’s the best option.
  • Backend: .NET Core version
Why? .NET core allows cross-platform development and it is open source thus allowing for quick and efficient development.
Stories for building web UI and web APIs will help us in making components that we need for the whole system.
  • Database: Microsoft SQL Server
Why? It supports multiple transaction processing and the table is a row based table structure that connects data from different
table to one another.
  • Version control:
GitHub

Project development methodology

  • Our chosen methodology will be Agile. In agile, project management is broken up into multiple phases. We will use multiple collaboration software such as git. Since agile allows developers to respond to changes after getting feedback from stakeholders, this will make the development of the project more flexible and dynamic hence saving us, and the stakeholders a lot of time. We will break the work into smaller chunks so that we can all work simultaneously while also saving time and having enough time at the end to make sure that the project we submit is up to standard, this will also prevent having to restart everything (project development) over in case some of the project requirements are changed.
  • We plan on satisfying the client through early and continuous delivery. We will do this by creating and maintaining an open channel to allow for communication between the client and the team. This way we will stand a higher chance at meeting our clients needs and expectations.
  • We will have daily scrums, in which we will be discussing any shortcomings and or new developments as well as discussing the next goals that would need to be met on a daily basis.
  • We will meet at least 3 times a week , face to face to check on everyone else’s progress, help any team member that would be stuck as well as check if we are still in line with what needs to be produced at the end of the project period.

Contributors

Kudakwashe Chivunga (Team Lead And API Engineer Lead)

  • LinkedIn: kudakwashe-christine-chivunga-7862981b5

I am a self-motivated individual who has worked on multiple projects as a Business analyst(BA) as well as Project manager, both including university of Pretoria projects as well as other company projects.These roles have allowed me to lead teams into successful completion of working systems that are well documented ,easy to revisit,maintain and deliver. Alongside these roles I have worked on multiple object oriented systems, web applications and mobile applications.

GitHub Stats

Farai Chivunga (Developer Operations Lead)

  • LinkedIn: farai-chivunga-17a173188

I am a hardworker and I am able to learn new technologies quickly. A team player with excellent communication skills. I find joy in finding inovative ways to solve problems and I am highly motivated. I have worked on projects as a backend (service) engineer and head of developer operations. I am confident with coding in Java, C++, Python, Flutter(Dart), Javascript and Typescript. I have worked on projects where we used AngularJS with NestJS as a backend, and I have worked in a project where we used Flutter and Dart for our frontend, ASP.net core for our backend and MicrosoftSQL Server for our Database.

GitHub Stats

Simphiwe Ndlovu (Data Engineer Lead)

  • LinkedIn: simphiwe-ndlovu-819b68163

Good with research, experienced tester and has great knowledge with DevOps. Experienced in design patterns, object-oriented programming; developing, testing, and debugging code; designing interfaces and administering systems and networks. Quickly learn new technologies; successful working in both team and self-directed settings.

GitHub Stats

Thabo Maduna (Service Engineer Lead)

  • LinkedIn: thabo-maduna

I am good experience with backend programming, research on algorithms also can work on NestJS with Typescript/javascript, etc.Through my year here at the University of Pretoria I haven also gathered basic knowledge on database and frontend programming technologies which will come in handy for this project. I am able to adapt to new technologies and languages I enjoy acquiring new skills since the world of software development is huge and you can never know too much, this may be considered as my shortcoming since learning a lot of things at the same time causes one to confuse different languages but it’s nothing a little research can’t solve when using a certain language or technology.

GitHub Stats

Musa Mabasa (UI/UX Engineer Lead)

  • LinkedIn: musa-besmond-mabasa-7b4aa322a

I am determined and I have a drive to build and create software systems since I believe that software systems are the backbone of the economy and the general public. I believe I have a well balanced knowledge of backend development and front-end development, this includes designing of interfaces and server management and development. I have vast knowledge in design patterns, and I have worked using the proposed methodology in a previous project. I am good at finding solutions to proposed problems and debugging code. My shortcomings are that I tend to overthink and over analyse my work to the extent that I spend too much time on one aspect instead of spreading my effort on multiple aspects. I have since improved that by always being concise with my reasoning and general programming.

GitHub Stats

Why we chose this project

As final year computer science students, who went through most, if not all of our degree during the pandemic, we know how it feels to be studying online in different provinces away from the University. We know how difficult it can be to only contact the Lecturer via email and having him reply to your message days later (due to the fact that hundreds of students ask the same if not simpler questions to one lecturer daily). We would put a lot of effort in this project in order to make the lives of students during the pandemic easier. As with the rest of the world, every matter related to students is moving towards being digital and virtual. We want to be able to help these students to have a virtual tutor that can help them on a one-to-one basis and allow group chat functionality for them to interact with other students that have the same modules. We would also put in a lot of effort with the video calling functionality in-app to allow students to virtually meet because we know how it feels to have our questions lost in the whatsapp module group chats due to the many students on there. We believe we have an all rounded team. We have worked together on multiple projects before so we know how to cooperate, collaborate and communicate. We also know each other's strong points and weaknesses. We have worked on multiple similar web based projects and we are all always eager to learn new technologies. We are willing to give it our best shot as we want to end this degree on a good note.