GithubHelp home page GithubHelp logo

cs3305-team-4 / astratutor Goto Github PK

View Code? Open in Web Editor NEW
8.0 0.0 1.0 17.2 MB

AstraTutor - WebRTC-based tutoring platform with Stripe payments. Go+Postgres backend, React frontend

Home Page: https://cs3305-team-4.github.io/astratutor/documents/Project%20Documentation%20[FINAL].pdf

Dockerfile 0.10% Go 39.46% JavaScript 9.41% HTML 0.40% TypeScript 50.53% CSS 0.10%
react typescript javascript reactjs

astratutor's Introduction

AstraTutor

This repo serves as the monorepo for the AstraTutor application for Team 4 of the CS3305 Team Software Project module

Instructions

We have 2 test accounts for logging in

Tutor email:        [email protected]
Tutor password:     grindsapp

Student email:      [email protected]
Student password:   grindsapp

To look at pg admin use the following credentials

Email:              [email protected]
Password:           grindsapp

Second password:    grindsapp

Use website

Visit astratutor.com

Install Locally

  1. Clone the repo
  2. Run docker-compose up and visit:
    • https://localhost:8080 for UI
    • https://localhost:8081 for API
    • https://localhost:8082 for pgAdmin

This will take some time to start as it needs to seed the database

Folder Structure

.
|-- api                 Contains GO Backend
|   |-- cmd             Contains script used to start webserver
|   |-- pkg             Contains backend code
|   |   |-- database    Contains code to open database connection
|   |   |-- routes      Contains code to define api endpoints
|   |   `-- services    Contains services code
|   `-- seed            Contains data used for seeding
|-- documents           Contains various documents for project
|-- pgadmin4            Contains config for pgadmin
`-- ui                  Contains React frontend
    |-- public          Contains Static files
    `-- src             Contains frontend components
        |-- api         Contains typescript for interfacing with backend
        |-- components  Contains react components
        |-- views       Contains pages
        `-- webrtc      Contains typescript for webrtc connections

Documentation

https://cs3305-team-4.github.io/astratutor/documents/Project%20Documentation%20%5BFINAL%5D.pdf

astratutor's People

Contributors

alekaei avatar ericm avatar jac avatar ocanty avatar rreynolds65 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

dangolbeeker

astratutor's Issues

Teaching a subject

A tutor should be able to sign up to tutor a subject on the site.
They provide a description for the subject and a price

Update Seeding

Include better seeding with simple methods to add accounts, and randomized data to add hundreds of entries as dummy data

UI Improvements

Go over and fix issues related to UI and general clean up

Whiteboard

Lessons should have a whiteboard with pencil/pen, line, eraser

Taught Subjects UI

Add UI to Profile showcasing a list of subjects they are teaching that can be edited and added to

Reporting system

A tutor can report a student with a reason.
A student can report a tutor with a reason.
The reports will be accessible from the admin dashboard where an employee can investigate the report

GDPR

A user should be able to download all their data in compliance with GDPR.
A user should be able to delete their data (terminate their account) under compliance with GDPR

Payment System

  • As a student I should be able to link my credit card/debit card (before allowed to request a lesson)
  • As a student I should be charged when the lesson is complete
  • When a student requests a lesson, an invoice is created on the price for that lesson that time
  • An invoice is charged at the end of a lesson:
  • The student is still charged if they don't turn up
  • The student is not charged if the tutor doesn't turn up
  • The tutor needs to be present for length of the lesson
  • As a tutor I should be able to link my bank account with my account
  • As a tutor I should be able to see my current balance (list of invoices that haven't been paid out to my bank account)

Documentation

How to login, what they can do, any other relevant information to beta testing the software

Update README

Add more information with regards to running the application and testing its features

Reschedule a lesson

Tutor should be able to offer an alternative time for a lesson rather than just deny.
Student should also be able to reschedule after a tutor reschedules .
Once a lesson has been confirmed it can be rescheduled up to 1 day before

Subtitle on profile

Subtitle UI on profile needs to be implemented in the backend as an attribute on the profile

Admin dashboard

Employee accounts can be created by a preset admin account.
Employees can confirm/deny tutor qualifications or request additional information.
Employees can manage subjects (add/delete/edit)

Ratings UI

Leave a review and rating on a tutor after youve had a lecture with them

Pagination

Endpoints that return large datasets should have pagination

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.