An AI-powered collaboration and project intelligence platform that helps developers of any background answer three questions: Who should I build with? What should I build? Is my idea worth building?
TechBridge uses Google's Gemini API (gemini-2.0-flash) as the reasoning engine behind three specialized AI agents. Each agent is a distinct prompt template sent to the same underlying model, with the response parsed as structured JSON and stored in PostgreSQL:
- Project Recommendation Agent (
/api/recommend-projects) — takes a user's skills, tech stack, interests, and experience level, and returns 3 tailored, industry-relevant project ideas. - Project Explanation Agent (
/api/explain-project) — takes a chosen project and returns a full technical breakdown: the real-world problem it solves, system architecture, database design, API structure, milestones, challenges, and deployment recommendations. - Idea Evaluation Agent (
/api/evaluate-idea) — takes a user's own project idea and returns a scored evaluation (feasibility, market demand, resume impact, scalability, innovation) plus strengths, weaknesses, and improvement suggestions.
A fourth component, the Teammate Matching Engine (/api/match/:userId), is intentionally rules-based rather than an LLM call — it scores candidate teammates by complementary skills, shared interests, shared tech stack, and availability overlap. This was a deliberate design choice: matching is a deterministic scoring problem, so a transparent algorithm is faster, free to run, and more explainable than an LLM call for this specific task.
- Frontend: React (Vite) + Tailwind CSS
- Backend: Node.js + Express
- Database: PostgreSQL
- AI: Google Gemini API (
@google/generative-ai)
techbridge/
├── backend/
│ ├── db/ # schema.sql, connection pool, init script
│ ├── routes/ # profiles, recommend, explain, evaluate, match
│ ├── utils/gemini.js # single wrapper for all Gemini calls
│ └── server.js
└── frontend/
└── src/
├── components/ # ProfileForm, ProjectRecommendations, IdeaEvaluator, TeammateMatches
├── api.js # all frontend -> backend calls
└── App.jsx # orchestrates the 4-step flow
- Node.js (v18+)
- PostgreSQL installed locally (or a free hosted instance, e.g. Neon or Supabase)
- A free Gemini API key from Google AI Studio
cd backend
npm install
cp .env.example .envEdit .env and fill in:
GEMINI_API_KEY— your key from AI StudioDATABASE_URL— your Postgres connection string
Create the database, then initialize the tables:
npm run db:init
npm run devThe API runs at http://localhost:5000. Visit http://localhost:5000/api/health to confirm it's running.
In a new terminal:
cd frontend
npm install
npm run devThe app runs at http://localhost:5173.
[Add your deployed link here, if applicable]
- Caching: AI responses (project recommendations, explanations) could be cached per skill-profile combination to reduce redundant Gemini calls and cost.
- Rate limiting: Express middleware (e.g.
express-rate-limit) should guard the AI endpoints in production to control API spend. - Database indexing: Add indexes on
users.emailand foreign keys (projects.user_id,ideas.user_id) as data grows. - Matching at scale: The current matching engine runs an O(n) scan per request; for larger user bases this would move to a precomputed similarity index or a background job that refreshes match scores periodically.
- Model flexibility: The Gemini wrapper (
utils/gemini.js) isolates all AI calls behind one function, making it straightforward to swap models or add a fallback provider later.