Coder Social home page Coder Social logo

teosean00 / gobook-frontend Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 324 KB

A one-stop class booking application built with a Microservices Architecture to manage a company’s class and user system, storing & displaying information for the classes and users via a catalogue page, along with a class reviewing functionality and a class recommendation feature for users based on their previously attended classes.

Home Page: https://teosean-gobook.netlify.app

HTML 0.56% JavaScript 99.36% CSS 0.08%
class-booking-application docker email-service expressjs flask google-oauth-login javascript kafka kong-api-gateway microservices-architecture mongodb nodejs python rabbitmq-message-broker react springboot stripe tailwindcss websocket

gobook-frontend's Introduction

Typing SVG

💫 About Me:

  • 👋 I'm Teo Sean
  • 🏫 I'm a Penultimate Student at Singapore Management University (SMU)
  • 💻 I'm pursuing a Bachelor of Science (Information Systems), Majoring in Digitalization and Cloud Solutions
  • 💓 I'm passionate about building user-centric, secure and scalable Full-Stack Solutions that ultimately create a positive impact for the users

🌐 Socials:

Portfolio Website LinkedIn

💻 Frontend Tech Stack:

typescript javascript react vuejs nextjs tailwind css3 html5 vuetify MUI ant design bootstrap chartjs

💻 Backend Tech Stack:

python java php FastAPI flask spring prisma logo sqlalchemy logo pandas library streamlit mongodb postgresql mysql supabase firebase planetscale kubernetes docker rabbitMQ kong api gateway pytest requests library

💻 Other Relevant Tech Skills:

aws gcp swagger ui postman jupyter logo git vercel logo vscode logo excalidraw figma canva logo slack logo

📊 GitHub Stats:

You are visitor number:  

languages graph

gobook-frontend's People

Contributors

anahopbob avatar elt0nxale avatar jeromeandrewong avatar josephjl avatar k3ithloh avatar teosean00 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

jeromeandrewong

gobook-frontend's Issues

feat: Implement Simple Review Form

Context

  • form for user to write reviews for a specific class
  • user can only write reviews for classes attended

Description

  • POST request to feedback/review service
  • confirmation when review submitted

feat: Integrate Profile Page with Backend Data

Context

  1. Profile page to be populated accordingly by calling Backend services, in particular the Interests, Signed up Classes and Reviews section are to be populated.
  2. To create a services/api folder to store these backend calls

Test and passing criteria

  1. Backend data called must be accurate for every user.

feat: Implement Recommendation Page and Features

Context

  1. Implement the form component to ask users to give their inputs on their skills, interests and availabilities
  2. Return the relevant classes that match the users input for them to carry on with their booking

Test and passing criteria

  1. Classes returned should be accurate based on user's input
  2. Classes should be returned in the order based on most matches to least (More Backend)

feat: Implement Payment Form

Context

  • payment gateway using Wise/Stripe API
  • receive and transfer money from dummy wise account
  • basic form validation
  • link to messaging/email service to notify user of payment status

Wireframe

Screenshot 2023-03-13 at 10 57 31 AM

feat: Implement All Courses/Course Catalogue Component

Context

  • grid view of classes

Tests and Passing Criteria

  • Looks nice
  • User should be able to click on courses on the calendar to view more information, linked to course information page
  • query data from backend

Wireframe

Screenshot 2023-03-13 at 10 52 51 AM

bug: Empty review form input for users who have not booked a class

Description

Screenshot 2023-04-07 at 11 25 43 AM

How to Reproduce

Steps to reproduce the behavior:

  1. restart docker container to reset DB

Expected behavior

  • display another UI that does not allow user to make review

Environment

OS [e.g. macOS Mojave]
Browser [e.g. Chrome 79]
Node version [e.g. v10.15.3]

feat: Implement User Profile Page UI

Context

  • User profile page displaying basic and personal info for logged in user
  • Information such as: name, email, interests, registered classes, given reviews

Test and passing criteria

  • Looks nice and responsive
  • Query data from backend
  • Ability to click on interests, classes, reviews and be redirected accordingly

feat: Implement Basic Navbar

Context

  • Needs to be decently functional (not all the links need to be routed if not in use)
  • Sticky
  • hamburger menu for smaller screens (not critical)
  • Links: Class Schedule, Profile, Recommend Me, Booking

Tests and Passing Criteria

  • Should be responsive (breakpoints in place for smaller screens and should be able to spread for larger screens)

Wireframe

Screenshot 2023-03-13 at 11 00 23 AM

Making review users dynamic

Context

Currently review user is hardcoded as anon

Description

making it dynamic

Alternatives Considered

Additional information

feat: Process Booking Logic

Context

  • process the booking on the frontend

Description

  • user should only be able to book for a class if user not already in class

Additional information

  • post request to backend only after payment page, refer to issue #7

feat: Basic login UI

Context

  • for user to sign in to use our booking system
  • username and password fields
  • functional login button
  • pseudo register and forgot password button

Tests and Passing Criteria

  • should have input validation
  • OAuth for authentication

Wireframe

Screenshot 2023-03-13 at 10 57 52 AM

fix: Button Component Color Prop

Description

change color prop doesn't change color of button

Screenshots

Screenshot 2023-03-19 at 2 43 30 PM

Environment

OS [e.g. macOS Mojave]
Browser [e.g. Chrome 79]
Node version [e.g. v10.15.3]

Additional context

feat: Integrate processing_booking service to payment page

Context

Process_booking service generates payment component based on the information passed in from the course booking page.

Description

Information taken in from course booking
"userEmail","userName","orderID","courseName","coursePrice","courseDescription","classID","runID","userID"

Currently payment field only loads on button click because it doesnt take in information from booking page.
Suggestion is to on pageload / before pageload call the makePayment function that would display the payment field based on the data given.

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.