Never run out of project ideas again! IdeasSpark is a smart project idea randomizer that helps developers find their next coding project with curated ideas, tech stack recommendations, and monetization tips.
Unlike basic project idea generators, IdeasSpark offers:
- π¨ Smart Tech Stack Builder - Choose from multiple compatible frontend + backend + database combinations
- π Portfolio Impact Score - Know how impressive each project will look in your portfolio (1-10 scale)
- π° Monetization Hints - Learn how to turn side projects into revenue streams
- π Learning Resources - Auto-curated tutorials and docs for your chosen tech stack
- π API Recommendations - Suggested APIs to make your project more dynamic
- β‘ Advanced Filtering - Filter by category, difficulty level, and estimated time
- 55+ Curated Ideas - Hand-picked projects across 10+ categories with real value
- β Random project idea generator with smart filtering
- β 55+ curated project ideas across multiple categories
- β Tech stack options for each project
- β Difficulty levels (Beginner, Intermediate, Advanced)
- β Time estimates for project completion
- β Portfolio impact scoring
- β Monetization tips
- β Learning resource links
- β Beautiful, responsive UI with TailwindCSS
- β User Authentication - Register, login with JWT tokens
- β Favorites System - Save your favorite project ideas
- β Voting System - Upvote/downvote projects
- β AI-Powered Idea Generation - Generate custom project ideas with Gemini AI
- β Advanced Search & Filter - Search by keyword, category, difficulty, tech stack, portfolio score
- β Top Rated & Trending - Discover popular projects
- β User Dashboard - Personal statistics and activity timeline
- β Leaderboard - Top contributors and most active users
- β Global Stats - Platform-wide analytics
- β Community Contributions - Submit your own project ideas
- π Project rating system (1-5 stars)
- π Comments and reviews
- π Notification system
- π Tags system
- π Project analytics (views, favorites over time)
- React 18 - UI library
- Vite - Build tool and dev server
- TypeScript - Type safety
- TailwindCSS - Styling
- Axios - HTTP client
- Lucide React - Beautiful icons
- Go - Fast, compiled language
- Fiber - Express-inspired web framework
- PostgreSQL - Relational database
- JWT - Authentication (Phase 2)
- Frontend: Vercel / Netlify
- Backend: Railway / Fly.io
- Database: Supabase / Railway PostgreSQL
randomize-idea/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # React components
β β β βββ ProjectCard.tsx
β β βββ services/ # API services
β β β βββ api.ts
β β βββ types/ # TypeScript types
β β β βββ index.ts
β β βββ App.tsx # Main app component
β β βββ main.tsx # Entry point
β βββ .env.example
β βββ package.json
β
βββ server/ # Go backend
β βββ database/ # Database connection & schemas
β β βββ db.go
β β βββ schema.sql
β β βββ seed.sql
β βββ handlers/ # API handlers
β β βββ projects.go
β βββ models/ # Data models
β β βββ project.go
β βββ routes/ # Route definitions
β β βββ routes.go
β βββ .env.example
β βββ go.mod
β βββ main.go # Server entry point
β
βββ README.md
- Node.js (v18 or higher)
- Go (v1.21 or higher)
- PostgreSQL (v14 or higher)
git clone <your-repo-url>
cd randomize-idea# Create PostgreSQL database
createdb ideasspark
# Option 1: Run migrations automatically (Recommended)
# Windows:
run-migrations.bat
# Linux/Mac:
chmod +x setup-database.sh
./setup-database.sh
# Option 2: Run manually
psql ideasspark < server/database/schema.sql
psql ideasspark < server/database/migrations/001_add_ai_generated_field.sql
psql ideasspark < server/database/migrations/002_rename_password_to_password_hash.sql
psql ideasspark < server/database/migrations/003_add_ratings_system.sql
psql ideasspark < server/database/migrations/005_comments.sql
# Seed data with 55+ project ideas
psql ideasspark < server/database/seed.sqlcd server
# Copy environment variables
cp .env.example .env
# Edit .env with your database credentials
# DATABASE_URL=postgres://user:password@localhost:5432/ideasspark?sslmode=disable
# Install Go dependencies
go mod download
# Run the server
go run main.goThe backend will start on http://localhost:8080
cd client
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env
# The default API URL is http://localhost:8080/api
# Edit .env if your backend runs on a different port
# Start the development server
npm run devThe frontend will start on http://localhost:5173
Open your browser and go to http://localhost:5173 to start using IdeasSpark!
POST /api/auth/register
Content-Type: application/json
{
"email": "user@example.com",
"username": "username",
"password": "password123"
}POST /api/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "password123"
}GET /api/auth/me
Authorization: Bearer <token>GET /api/projects/random?category=Web Development&difficulty=beginnerGET /api/projects?category=Web&difficulty=beginner&limit=20&offset=0GET /api/projects/search?keyword=chat&category=Web&tech_stack=React&min_score=7&sort_by=votes&sort_order=descQuery Parameters:
keyword- Search in title and descriptioncategory- Filter by categorydifficulty- beginner, intermediate, advancedtech_stack- Search in tech stacksmin_score,max_score- Portfolio score range (1-10)ai_generated- true/falsesort_by- votes, created_at, portfolio_score, titlesort_order- asc/desclimit,offset- Pagination
GET /api/projects/top-rated?limit=10GET /api/projects/trending?days=7&limit=10GET /api/projects/:idGET /api/projects/categoriesGET /api/projects/ai-generated?limit=20&offset=0POST /api/projects
Authorization: Bearer <token>
Content-Type: application/json
{
"title": "Your Project Title",
"description": "Description...",
"category": "Web Development",
"difficulty": "intermediate",
"time_estimate": "1 week",
"tech_stacks": [...],
"apis": [...],
"portfolio_score": 8,
"monetization_tip": "...",
"learning_paths": [...]
}DELETE /api/projects/:id
Authorization: Bearer <token>POST /api/ai/generate
Content-Type: application/json
{
"skill_level": "intermediate",
"tech_stack": "React, Node.js, PostgreSQL",
"time_available": "1-2 weeks",
"category": "Web Development",
"interests": "automation, productivity"
}POST /api/ai/generate-and-save
Content-Type: application/json
{
"skill_level": "beginner",
"tech_stack": "HTML, CSS, JavaScript",
"time_available": "3-5 days",
"category": "Web Development",
"interests": "games, interactive"
}GET /api/favorites
Authorization: Bearer <token>POST /api/favorites
Authorization: Bearer <token>
Content-Type: application/json
{
"project_id": 1
}DELETE /api/favorites/:project_id
Authorization: Bearer <token>POST /api/votes
Authorization: Bearer <token>
Content-Type: application/json
{
"project_id": 1,
"vote_type": "up" // or "down"
}Note: Voting same type again removes the vote (toggle). Voting opposite type changes the vote.
GET /api/votes
Authorization: Bearer <token>GET /api/stats/globalResponse:
{
"total_users": 100,
"total_projects": 250,
"total_votes": 500,
"total_favorites": 300,
"ai_generated_projects": 50,
"user_contributed_projects": 25,
"most_popular_category": {
"name": "Web Development",
"count": 80
}
}GET /api/stats/leaderboard?metric=votes_received&limit=10Metrics:
votes_received- Most voted projectsprojects_created- Most prolific creatorsvotes_given- Most active voters
GET /api/stats/me
Authorization: Bearer <token>GET /api/stats/activity?limit=20
Authorization: Bearer <token>GET /api/health- Web Development - Full-stack web applications
- Mobile Development - iOS/Android apps
- API Development - Backend services and APIs
- CLI Tool - Command-line utilities
- Game Development - 2D/3D games
- Browser Extension - Chrome/Firefox extensions
- Data Science - ML/AI projects
- Productivity - Tools to boost productivity
- Blockchain - Web3 and crypto projects
- Real-time Chat Application
- Recipe Finder with AI
- Task Management Board (Trello Clone)
- Weather Dashboard
- E-commerce Product Page
- URL Shortener Service
- Markdown Blog Platform
- Portfolio Generator
- Job Board Aggregator
- Habit Tracker App
- NFT Marketplace
- Crypto Portfolio Tracker
- And 43 more...
Once we enable user contributions, you'll be able to:
- Submit your own project ideas
- Vote on existing projects
- Add tech stack variations
- Share monetization strategies
# Backend
cd server
go test ./...
# Frontend
cd client
npm run testcd client
npm run build
# Output in client/dist/cd server
go build -o ideasspark-api
# Binary: ./ideasspark-api- Push code to GitHub
- Import project on Vercel
- Set environment variable:
VITE_API_URL=https://your-backend-url.com/api - Deploy!
- Create Railway project
- Add PostgreSQL plugin
- Set environment variables from
.env.example - Deploy Go service
- Run schema and seed SQL in Railway PostgreSQL
- Use Railway PostgreSQL, Supabase, or any PostgreSQL hosting
- Don't forget to run
schema.sqlandseed.sql
PORT=8080
DATABASE_URL=postgres://user:password@localhost:5432/ideasspark?sslmode=disable
JWT_SECRET=your-super-secret-key # For Phase 2
VITE_API_URL=http://localhost:8080/api
- Make sure PostgreSQL is running
- Verify DATABASE_URL in
server/.env - Check username, password, and database name
- Ensure backend is running on port 8080
- Check CORS settings in
server/main.go - Verify
VITE_API_URLinclient/.env
- Install Go from https://go.dev/dl/
- Add Go to your PATH
- Change PORT in
server/.env - Update VITE_API_URL in
client/.env
MIT License - feel free to use this for your own projects!
- Inspired by the need to never be bored as a developer
- Built with love for the developer community
- Special thanks to all open-source libraries used
Built with β₯ using React, Go, and PostgreSQL
Questions? Ideas? Open an issue or contribute! π