Codey is an intelligent, personalized AI coding coach that adapts to different learning personas and provides tailored educational experiences for coding fundamentals and software engineering concepts.
- Kids: Fun, emoji-rich coding fundamentals with playful analogies
- Adults: Professional coding or software engineering concepts with real-world analogies
- Medical Professionals: Technical concepts explained through medical analogies
- Playful Theme: Bright, colorful interface for younger learners
- Graceful Theme: Professional, elegant interface for adult learners
- Points system for completed challenges
- Badge achievements for milestones
- Progress tracking across learning paths
- Google OAuth integration via Firebase
- User progress saved to Firestore
- Admin dashboard for analytics
- Gemini AI integration for personalized explanations
- Context-aware feedback based on user persona
- Secure backend API for AI interactions
- Frontend: React 18 + TypeScript + Vite
- Styling: Tailwind CSS with custom CSS variables for theming
- Backend: Netlify Functions
- Database: Firebase Firestore
- Authentication: Firebase Auth (Google OAuth)
- AI: Google Gemini API
- Deployment: Netlify
- Node.js 18+
- npm or yarn
- Firebase project with Firestore and Auth enabled
- Google Gemini API key
-
Clone the repository
-
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in the root directory - Add your Gemini API key:
GEMINI_API_KEY=your_gemini_api_key_here
- Create a
-
Configure Firebase:
- Update
src/firebaseConfig.tswith your Firebase project configuration
- Update
-
Start the development server:
npm run dev
-
Open http://localhost:4278 in your browser
- The app runs on port 4278 by default
- Firebase Auth warnings about Cross-Origin-Opener-Policy in development are normal and expected
- For full functionality, you'll need to set up Firebase and Gemini API keys
npm run buildThe project is configured for Netlify deployment:
- Connect your repository to Netlify
- Set the build command to
npm run build - Set the publish directory to
dist - Add your
GEMINI_API_KEYenvironment variable in Netlify settings (required for AI features) - Deploy!
src/
├── components/ # React components
│ ├── icons.tsx # SVG icon components
│ ├── Header.tsx # Main header component
│ ├── WelcomeModal.tsx # Onboarding flow
│ └── ...
├── services/ # External service integrations
│ ├── authService.ts # Firebase authentication
│ ├── dbService.ts # Firestore database operations
│ └── geminiService.ts # AI service integration
├── constants.ts # Learning paths and configuration
├── types.ts # TypeScript type definitions
├── firebaseConfig.ts # Firebase configuration
└── App.tsx # Main application component
netlify/
└── functions/
└── gemini.ts # Secure backend API for Gemini
- Welcome to Coding
- Variables (Storing Information)
- Conditionals (Making Decisions)
- System Architecture Overview
- CPU & RAM Understanding
- API Communication
- Technology in Medicine Introduction
- System Anatomy (CPU & RAM with medical analogies)
- System Communication (APIs in healthcare)
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For questions or support, please open an issue in the repository.