Skip to content

nodeNINJAr/sayEasy-client

Repository files navigation

SayEasy 🎓 – Online Tutor Booking Platform

🌐 Live Website:

🚀 Introduction

SayEasy is an innovative online tutor booking platform designed to connect language learners with skilled tutors worldwide. Whether you're a learner looking for a tutor or a tutor wanting to teach, SayEasy makes the process seamless and efficient.

With live virtual classrooms, secure booking & payment systems, and customized learning plans, SayEasy empowers individuals to break language barriers, promote cultural exchange, and make learning accessible to everyone.


📑 Table of Contents


🌟 Features

🔹 User Roles

Learn or Teach – Users can register as language learners or tutors, and can switch roles anytime.

🔹 Tutor Search & Booking System

Advanced search filters to find tutors based on language, availability, and expertise.
One-time tutor booking per language category to maintain structured learning.
Student reviews – Learners can review their tutors after booking.

🔹 Tutorial Management

Add Tutorials – Users can create & upload tutorials to share knowledge.
Update Tutorials – Modify or enhance existing tutorials to keep content up to date.
Delete Tutorials – Remove outdated or unnecessary tutorials.

🔹 Seamless Mobile & Desktop Experience

✅ Fully responsive design for all devices (mobile, tablet, desktop).

🔹 Security & Authentication

JWT (JSON Web Token) authentication for secure user data.


🛠 Tech Stack

Technology Purpose
React.js Frontend Framework
Vite Development & Build Tool
Firebase Authentication & Database
Axios API Requests
React Query State Management
Tailwind CSS & DaisyUI Styling
Swiper.js Interactive Carousel
Framer Motion & Lottie React Animations
React Router Navigation

📥 Installation

Prerequisites

  • Git (for cloning the repository)
  • Node.js (>=16.0.0)
  • npm or yarn package manager

Steps

  1. Clone the repository:
    git clone https://github.com/nodeNINJAr/sayEasy-client
    cd sayeasy-client
  2. Install dependencies:
    npm install
  3. Create a .env file and configure the required environment variables (see Environment Variables).
  4. Start the development server:
    npm run dev

▶️ Usage

  • Start the development server:
    npm run dev
  • Build for production:
    npm run build
  • Preview production build:
    npm run preview
  • Run ESLint for code linting:
    npm run lint

📜 Available Scripts

Command Description
npm run dev Start development server
npm run build Build for production
npm run preview Preview the production build
npm run lint Run ESLint for code quality

⚙️ Environment Variables

Create a .env file in the root directory and configure the following:

VITE_base_url=your-backend-api-url
VITE_LOCAL_BASE_URL=your-local-api-url

# Firebase Configuration
VITE_FIREBASE_API_KEY=your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-firebase-auth-domain
VITE_FIREBASE_PROJECT_ID=your-firebase-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-firebase-storage-bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your-firebase-messaging-sender-id
VITE_FIREBASE_APP_ID=your-firebase-app-id

For detailed Firebase setup, refer to Firebase Docs.


🛠 Troubleshooting

  • Port Conflicts?
    Change the port by running:
    vite --port 3001
  • Dependency Issues?
    Delete node_modules and reinstall:
    rm -rf node_modules package-lock.json && npm install
  • Environment Variables Not Loading?
    Ensure that your .env file is correctly formatted and included in .gitignore.

🤝 Contributing

We welcome contributions! Follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature-branch)
  3. Commit your changes (git commit -m "Add new feature")
  4. Push to the branch (git push origin feature-branch)
  5. Open a Pull Request

About

The purpose of SayEasy is to provide a dynamic and user-friendly platform that bridges language learners and skilled tutors worldwide. By allowing users to both book tutors and become tutors themselves

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors