An interactive platform for learning Git and GitHub through hands-on tutorials.
- 🔐 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
- 🔄 OAuth authentication (GitHub, Google)
- 📧 Password reset functionality
- 📱 Profile picture uploads
- 🏷️ Tutorial filtering and search
- 📊 Progress tracking
- ⭐ Tutorial bookmarking
- 💳 Premium subscriptions
- 📱 Offline support
- 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
- Node.js 16.8 or later
- npm or yarn
- Firebase account
- Clone the repository:
git clone https://github.com/yourusername/github-tutorial-platform.git
- Install dependencies:
npm install
- 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
- Start the development server:
npm run dev
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
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.