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.localfile 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 devsrc/
βββ 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.