Skip to main content
Welcome to EducaStream! This guide will help you get started with the platform, whether you’re a student looking to learn or an instructor ready to teach.

Choose Your Path

Start as a Student

Browse courses, enroll, and begin your learning journey

Start as an Instructor

Create courses, upload lessons, and teach students

Student Quickstart

Step 1: Create Your Account

1

Register with Email or Google

Navigate to the login page and choose your registration method:Email Registration:
// User registration with email
const usuario = {
  email: email,
  password: password,
  photoURL: user,
  role_student: true,
  role_instructor: false
};

postUser(usuario);
Google Authentication:
  • Click the Google sign-in button
  • Authorize with your Google account
  • Your profile is automatically created
Google sign-in automatically grants both student and instructor roles, allowing you to switch between learning and teaching.
2

Complete Your Profile

After registration, you’ll be redirected to the courses page. Your basic profile is created with:
  • Email address
  • Name (from Google) or default settings
  • Profile photo
  • Student role enabled by default

Step 2: Browse and Find Courses

1

Explore Available Courses

The courses page displays all active courses sorted by creation date (newest first):
// Courses are automatically sorted by creation date
data.sort((a, b) => {
  const fechaA = new Date(a.createdAt);
  const fechaB = new Date(b.createdAt);
  return fechaB - fechaA;
});
Use the search and filter options to find courses:
  • Search by title: Type keywords in the search bar
  • Filter by category: Select from available categories
  • Sort by price: Order courses from lowest to highest or vice versa
2

View Course Details

Click on any course to see:
  • Course title and description
  • Complete lesson breakdown by section
  • Total duration and number of classes
  • Student ratings and reviews
  • Pricing information
Check the ratings to see what other students think about the course before enrolling.

Step 3: Enroll in a Course

1

Add to Cart

From the course detail page, click Add to Cart to add the course to your shopping cart:
// Course is added with discounted price if applicable
const newPrice = dataDetail.price - 
  (dataDetail.price * dataDetail.percentageDiscount) / 100;

dispatch({ type: "ADD_TO_CART", payload: productToAddToCart });
2

Review Your Cart

Navigate to your cart to review:
  • All selected courses
  • Individual course prices
  • Total purchase amount
You can remove courses from your cart at any time before checkout.
3

Complete Purchase

Click Finalizar Compra to process your enrollment:
// Payment processes cart items and enrolls you in courses
await axios.post("payment/enrollment", {
  cart,
  id,
  email,
  id_payment
});
Once payment is complete, courses are immediately available in your student dashboard.

Step 4: Access Your Courses

1

Go to Student Dashboard

Navigate to your student area to see all enrolled courses. Each course card shows:
  • Course title and image
  • Progress tracking
  • Rating option
  • Access to available classes
2

Start Learning

Click Clases disponibles on any course to view and access lessons organized by section. Navigate through lessons sequentially to track your progress.
3

Rate Your Experience

After completing a course, share your feedback:
// Students can rate courses 1-5 stars with comments
postRating(course_id, user_id, rating, comment);
You can modify your rating at any time from the student dashboard.

Instructor Quickstart

Step 1: Set Up Your Instructor Account

1

Register or Sign In

Create an account using Google authentication for automatic instructor access, or request instructor permissions after email registration.
Google sign-in provides both role_instructor: true and role_student: true by default.
2

Access Instructor Dashboard

Navigate to your instructor panel to manage your courses and create new content.

Step 2: Create Your First Course

1

Fill Course Information

From the course creation form, provide:
const course = {
  title: "",           // Course name (max 70 characters)
  description: "",     // Brief description (max 90 characters)
  instructor_id: id,   // Your instructor ID
  category: "",        // Select from available categories
  image: "",          // Course thumbnail
  sections: "",       // Number of sections
  price: 1.00        // Price in USD (min $1.00, max $9,999.99)
};
Choose a clear, descriptive title that accurately represents your course content.
2

Upload Course Image

Select an engaging thumbnail image for your course. Images are stored in Firebase Storage:
// Image upload to Firebase
const imageRef = ref(storage, `courses/${nombreCurso}/${imageFile.name}`);
await uploadBytes(imageRef, imageFile);
const path = await getDownloadURL(imageRef);
3

Set Category and Sections

  • Choose the most relevant category from the dropdown
  • Define the number of sections to organize your lessons
  • Set a competitive price for your course
4

Submit Course

Click Crear curso to publish. Your course will be created and appear in the courses catalog:
// Course creation endpoint
await axios.post("/courses/create", course);
After creation, you’ll be redirected to the courses page where you can find your new course.

Step 3: Add Lessons to Your Course

1

Navigate to Course Editor

From your instructor dashboard, select the course you want to edit and access the lesson creation interface.
2

Create Lesson Content

For each lesson, provide:
  • Lesson title
  • Section assignment (1 to your defined section count)
  • Video content or materials
  • Duration information
Lessons are organized by sections for better course structure.
3

Publish Lessons

Save each lesson to make it available to enrolled students. Students will see lessons organized by section in sequential order.

Step 4: Manage Your Courses

1

Edit Course Details

Update course information, pricing, or content at any time using the course update endpoint:
// Update existing course
await axios.put(`/courses/${courseId}`, updatedCourseData);
2

Monitor Student Enrollments

Track which students have enrolled in your courses through the instructor dashboard.
3

Review Course Ratings

See student feedback and ratings to improve your course content and teaching approach.

Key Platform Features

Students can add multiple courses to their cart before checkout. The cart:
  • Persists across sessions
  • Calculates total pricing automatically
  • Applies discounts when available
  • Allows removal of individual items
Find courses easily with multiple filter options:
  • Text Search: Search by course title
  • Category Filter: Browse courses by category
  • Price Sorting: Order by price (ascending or descending)
  • Reset Filters: Clear all filters to view all courses
// Filter by category
const url = `/courses?category=${categoryFilter}`;

// Filter by title
const url = `/courses?title=${searchTerm}`;
Students can rate completed courses with:
  • Star rating (1-5 stars)
  • Written comments
  • Ability to modify ratings later
Ratings help other students make informed decisions and provide valuable feedback to instructors.
The platform uses Firebase for:
  • Authentication: Email/password and Google OAuth
  • Storage: Course images and media files
  • Security: Secure user data and course content

Next Steps

API Reference

Explore the complete API documentation

Course Management

Learn advanced course creation techniques

Payment System

Understand the enrollment and payment flow

User Profiles

Learn about user profiles and settings
Need help? The platform is built with React and Vite, using Firebase for authentication and storage. Check the source code for detailed implementation examples.

Build docs developers (and LLMs) love