A modern, full-stack web application for managing and voting on ideas with GitHub integration for inspiration. Built with React, Firebase, and Tailwind CSS.
- User Authentication - Secure login/logout with Firebase Auth
- Idea Management - Create, view, and delete ideas
- Voting System - Vote on ideas with real-time vote counts
- Real-time Updates - Live synchronization using Firestore
- Responsive Design - Beautiful UI that works on all devices
- Trending Repositories - Browse trending GitHub repos for inspiration
- Repository Details - View stars, forks, language, and descriptions
- Idea Inspiration - Link ideas to GitHub repositories
- Auto-fill - Automatically populate idea text from repo descriptions
- Modern Stack - React 18 + Vite for fast development
- Firebase Backend - Firestore database with real-time capabilities
- Tailwind CSS - Utility-first CSS framework for styling
- ESLint - Code quality and consistency
- Firebase Hosting - Production deployment
Visit the live application: https://idea-board-app.web.app
- Frontend: React 18, Vite, Tailwind CSS
- Backend: Firebase (Firestore, Authentication, Hosting)
- APIs: GitHub API for trending repositories
- Development: ESLint, PostCSS
- Node.js (v16 or higher)
- npm or yarn
- Firebase CLI (
npm install -g firebase-tools)
git clone <your-repo-url>
cd idea-boardnpm install- Go to Firebase Console
- Create a new project
- Enable Authentication (Email/Password)
- Create a Firestore database
- Get your Firebase configuration
Create a .env.local file in the root directory:
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_idUpdate src/firebase.js with your Firebase config:
const firebaseConfig = {
apiKey: import.meta.env.VITE_FIREBASE_API_KEY,
authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN,
projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID,
storageBucket: import.meta.env.VITE_FIREBASE_STORAGE_BUCKET,
messagingSenderId: import.meta.env.VITE_FIREBASE_MESSAGING_SENDER_ID,
appId: import.meta.env.VITE_FIREBASE_APP_ID
};npm run devThe app will be available at http://localhost:5173
# Build the project
npm run build
# Deploy to Firebase
firebase deployThe project includes convenient deployment scripts:
start-session.sh- Start development sessionfinish-session.sh- Build and deploy
idea-board/
βββ public/ # Static assets
βββ src/
β βββ components/ # React components
β β βββ IdeaBoard.jsx # Main idea management component
β β βββ Login.jsx # Authentication component
β β βββ TrendingRepos.jsx # GitHub integration component
β βββ services/ # API services
β β βββ githubApi.js # GitHub API integration
β βββ App.jsx # Main app component
β βββ firebase.js # Firebase configuration
β βββ main.jsx # App entry point
βββ firebase.json # Firebase configuration
βββ package.json # Dependencies and scripts
βββ tailwind.config.js # Tailwind CSS configuration
βββ postcss.config.mjs # PostCSS configuration
βββ vite.config.js # Vite configuration
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
- Firebase Authentication with email/password
- Secure user sessions
- Protected routes and components
- Create, read, and delete ideas
- Real-time updates across all users
- User-specific idea ownership
- One vote per user per idea
- Real-time vote count updates
- Visual feedback for voted ideas
- Browse trending repositories by language
- Get repository details (stars, forks, description)
- Link ideas to GitHub repositories for inspiration
- Auto-fill idea text from repository descriptions
- Firebase Security Rules for Firestore
- Environment variables for sensitive data
- User authentication required for all operations
- Input validation and sanitization
-
Firebase Configuration Errors
- Ensure all environment variables are set correctly
- Check for trailing characters in
.env.local - Verify Firebase project settings
-
Build Errors
- Clear
node_modulesand reinstall:rm -rf node_modules && npm install - Check for PostCSS configuration issues
- Ensure Tailwind CSS is properly configured
- Clear
-
Deployment Issues
- Run commands from the
idea-boarddirectory - Ensure Firebase CLI is installed globally
- Check Firebase project permissions
- Run commands from the
If you encounter indexing errors when sorting by votes, create the required composite index:
firebase deploy --only firestore:indexes- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
- Firebase for the backend infrastructure
- GitHub for the API integration
- Tailwind CSS for the beautiful UI components
- React and Vite for the modern development experience
Happy ideating! π‘