Skip to content

Latest commit

Β 

History

History
104 lines (84 loc) Β· 2.89 KB

File metadata and controls

104 lines (84 loc) Β· 2.89 KB

GitHub Tutorial Platform

An interactive platform for learning Git and GitHub through hands-on tutorials.

Features

Implemented

  • πŸ” Authentication with email/password
  • πŸŒ“ Dark/light theme support
  • πŸ‘€ User profiles with display name customization
  • πŸ“š Tutorial listing and viewing
  • πŸ”’ Protected routes for authenticated content
  • 🎨 Responsive design with Tailwind CSS
  • πŸ”₯ Real-time Firebase integration
  • ⚑ Built with Next.js 13 App Router

Coming Soon

  • πŸ”„ OAuth authentication (GitHub, Google)
  • πŸ“§ Password reset functionality
  • πŸ“± Profile picture uploads
  • 🏷️ Tutorial filtering and search
  • πŸ“Š Progress tracking
  • ⭐ Tutorial bookmarking
  • πŸ’³ Premium subscriptions
  • πŸ“± Offline support

Tech Stack

  • Frontend: Next.js 13, React, TypeScript
  • Styling: Tailwind CSS
  • Authentication: Firebase Auth
  • Database: Firestore
  • State Management: React Query, Zustand
  • UI Components: Headless UI
  • Icons: Heroicons

Getting Started

Prerequisites

  • Node.js 16.8 or later
  • npm or yarn
  • Firebase account

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/github-tutorial-platform.git
  1. Install dependencies:
npm install
  1. Create a .env.local file with your Firebase configuration:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
  1. Start the development server:
npm run dev

Project Structure

src/
β”œβ”€β”€ app/                 # Next.js 13 app directory
β”œβ”€β”€ components/          # React components
β”‚   β”œβ”€β”€ auth/           # Authentication components
β”‚   β”œβ”€β”€ home/           # Homepage components
β”‚   β”œβ”€β”€ layout/         # Layout components
β”‚   β”œβ”€β”€ profile/        # Profile components
β”‚   β”œβ”€β”€ providers/      # Context providers
β”‚   β”œβ”€β”€ theme/          # Theme components
β”‚   β”œβ”€β”€ tutorials/      # Tutorial components
β”‚   └── ui/             # Shared UI components
β”œβ”€β”€ lib/                # Utility functions
β”‚   β”œβ”€β”€ firebase/       # Firebase configuration
β”‚   β”œβ”€β”€ hooks/          # Custom hooks
β”‚   └── utils/          # Helper functions
β”œβ”€β”€ stores/             # State management
└── types/              # TypeScript types

Contributing

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

License

This project is licensed under the MIT License - see the LICENSE file for details.