Skip to content

edward821220/yoga-bear

Repository files navigation

Yoga Bear

img

Test Account :
email password
[email protected] jeany123

Intro

Yoga Bear is a C2C platform that matches yoga instructors with those interested in learning yoga.
You can take yoga courses online, offline, or through videos.
Demo Video img

Techniques

  • Built the website by Next.js with TypeScript and styled-components. (applied SSG, SSR, and CSR on different pages).
  • Implemented group video chat with Next.js serverless function, Pusher.js (WebSockets server library), and WebRTC.
  • Made a customized video player for the course room. (included window full screen, full screen, thumbnail on time-progress-bar, forward, rewind, speed control, and voice control functions.)
  • Enabled users to launch video courses and upload course covers, member avatars, and article pictures through Firebase Cloud Storage.
  • Compressed images (< 1 MB) before users uploaded to improve loading speed and reduce storage costs with browser-image-compression.
  • Integrated a text editor which can upload images with React-Quill and Firebase Cloud Storage.
  • Used Firebase Firestore for data management (included users, courses, and articles data.).
  • Provided a calendar with reserving, reviewing, and joining room functions integrated for users to schedule their online and offline courses by React-Scheduler and Material-UI.
  • Used EmailJS to send confirmation mail after buying or reserving courses.
  • Wrote some unit tests, integration tests (for React functional components), and snapshot tests by Jest with React-Testing-Library.
  • Managed global states by Recoil and treated nested states as immutable via Immer.
  • Used ESLint (Airbnb config) to lint my code.

img

Functional Map

img

Features

Member System

Users can sign up and log in by email and select their identities (teacher or student). img

Payment System

Users can input a fake credit card to top-up bear money.
Bear money can reserve online, offline courses or buy video courses. img

Browse All Video Courses

Users can browse all video courses and buy the course they like. img

Browse All Teachers

Users can browse all teachers and reserve their courses. img

Calendar

Students can use calendar to reserve and review online, offline courses and enter the video-call room.
Teachers cna use calendar to arrange their online, offline courses and enter the video-call room. img

Launch Video Courses

Teachers can launch video courses. img

My Courses

Users can browse all courses they bought and all courses they reserved on my courses page. img

Video Course Room

Users can enter the video course room which they have bought. img

Video-Call Course Room

Users can enter the video-call course room which they have reserved. img

Forum

Users can post articles, leave messages, and click the like button on forum page. img img img

Releases

No releases published

Packages

No packages published