Skip to content
/ MyTutor Public

πŸŽ“ MyTutor is a web-based platform that revolutionises University Tutor & TA management. Built with Java, Vaadin, and Spring Boot, it streamlines applications, scheduling, and administration with a secure, modular, and user-friendly design. Featuring role-based access, MyTutor enhances productivity for students, tutors, and course convenors alike.

Notifications You must be signed in to change notification settings

cassxw/MyTutor

Repository files navigation

MyTutor πŸŽ“

πŸ“Œ Project Overview

MyTutor is a web-based application designed to modernise Tutor and Teaching Assistant (TA) management at the University of Cape Town (UCT). It streamlines the application process, improves scheduling, and enhances administrative workflows. The system is built with Java, Vaadin, and Spring Boot, ensuring a scalable, modular, and secure solution for course administrators, lecturers, and students.

πŸ“Έ Screenshots

image image image image

πŸ”Ή Key Features

  • πŸ” User Roles & Authentication - Secure login for administrators, lecturers, tutors, and students.
  • πŸ“„ Tutor & TA Applications - Students can apply for positions with an intuitive interface.
  • πŸ“… Easy-to-Use Scheduling - Efficiently manage tutor assignments and schedules.
  • βš™οΈ Robust Admin Management - Course convenors can monitor tutor performance and allocate responsibilities.
  • πŸ—οΈ Scalability & Modularity - Designed for easy expansion and integration with existing UCT systems.
  • πŸŒ™ Dark Mode Support - Users can toggle between light and dark mode for a more comfortable viewing experience.

πŸ› οΈ Tech Stack

  • Java 17 - Backend logic & business rules
  • Spring Boot - Framework for building scalable web applications
  • Vaadin - Frontend UI framework for Java-based web applications (more on this below)
  • MySQL - Relational database management
  • Maven - Dependency management and build automation
  • Git & GitLab - Version control & collaboration
  • REST APIs - Seamless communication between frontend and backend

πŸ€” What is Vaadin?

Vaadin is a Java-based web framework that simplifies building modern, interactive UIs without requiring extensive JavaScript or frontend coding. Unlike traditional web frameworks that rely on HTML and JavaScript, Vaadin allows developers to create full-stack applications using only Java. It is particularly useful for business applications where maintainability and security are priorities.

πŸ”Ή Why Vaadin for MyTutor?

  • Full-stack Java development - No need for additional frontend technologies like React or Angular.
  • Secure & Stateful UI - Reduces security risks by managing UI state on the server side.
  • Rapid Prototyping - Faster UI development with pre-built components and themes.
  • Excellent Integration with Spring Boot - Seamlessly connects to backend services and databases.
  • Efficient OOP Implementation - By leveraging Java, we ensured that Object-Oriented Programming (OOP) principles were efficiently applied, resulting in a modular, maintainable, and seamless UI.

πŸ‘¨β€πŸ’» Team Members

This project was developed as part of our Undergraduate Computer Science Capstone Project (2023):

  • VWSJUL003 - Julyan van der Westhuizen
  • WLLCAS004 - Cassandra Wallace
  • WLSETH003 - Ethan Wilson

πŸ“‚ Alternative Project Repository

πŸ”— GitLab: MyTutor Repository

πŸ—οΈ Installation & Setup

πŸ“Œ Prerequisites

Ensure you have the following installed:

  • Java 17
  • Maven (for dependency management)

⚠️ Important Note

🚫 No active deployment: Currently, MyTutor is not hosted online. To test the system, you will need to run it locally.

πŸ§ͺ Test User Accounts

Use the following test accounts to explore different user roles:

Role Email Password
Administrator [email protected] 1234
Course Convenor [email protected] 1234
Teaching Assistant (TA) [email protected] 1234
Tutor [email protected] 1234
Student Sign up via login page N/A

πŸ”Ή Key Role Capabilities:

  • Course Convenors can accept TAs and Tutors for their course.
  • TAs can approve tutors, manage schedules, and view statistics.
  • Tutors can view schedules and sign up for tutoring sessions.
  • Students can sign up and apply to be tutors for courses they have completed.

πŸ“‚ Project Structure

The project contains the following main files:

  • πŸ“„ VWSJUL003_WLLCAS004_WLSETH003_Report.pdf - Detailed project report and documentation.
  • πŸ“¦ VWSJUL003_WLLCAS004_WLSETH003_code.tar.gz - Source code package.
  • πŸ“‚ Code Excerpts - A separate folder containing most of our Java code files for easy demonstration and review. While the below installation steps remain the same, this folder allows for quick access to the actual code without needing to extract the compressed archive.

πŸ“₯ Installation Steps

  1. Clone this repository:
  2. Extract the source code package:
    tar -xvzf VWSJUL003_WLLCAS004_WLSETH003_code.tar.gz
    cd mytutor
  3. Build the project using Maven:
    mvn clean install
  4. Run the application:
    mvn spring-boot:run
  5. The local server will likely run on port 37090, but check the terminal output for confirmation. Access the application at:
    http://localhost:<PORT>
    
    (Replace <PORT> with the actual port displayed in the terminal.)

πŸ’‘ Note: The installation process may take some time due to dependency resolution.

πŸ“‘ Additional Documentation

For more details on the design process, software architecture, and system diagrams, refer to our project report:
πŸ“„ VWSJUL003_WLLCAS004_WLSETH003_Report.pdf (included in the repository)


πŸ’‘ Contributions & Feedback are welcome! If you have any suggestions or want to collaborate, feel free to reach out! πŸŽ‰

About

πŸŽ“ MyTutor is a web-based platform that revolutionises University Tutor & TA management. Built with Java, Vaadin, and Spring Boot, it streamlines applications, scheduling, and administration with a secure, modular, and user-friendly design. Featuring role-based access, MyTutor enhances productivity for students, tutors, and course convenors alike.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages