Skip to content

ynsh-ai/techbridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

TechBridge

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?

AI Architecture

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:

  1. 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.
  2. 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.
  3. 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.

Tech Stack

  • Frontend: React (Vite) + Tailwind CSS
  • Backend: Node.js + Express
  • Database: PostgreSQL
  • AI: Google Gemini API (@google/generative-ai)

Project Structure

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

Local Setup

Prerequisites

  • 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

1. Backend

cd backend
npm install
cp .env.example .env

Edit .env and fill in:

  • GEMINI_API_KEY — your key from AI Studio
  • DATABASE_URL — your Postgres connection string

Create the database, then initialize the tables:

npm run db:init
npm run dev

The API runs at http://localhost:5000. Visit http://localhost:5000/api/health to confirm it's running.

2. Frontend

In a new terminal:

cd frontend
npm install
npm run dev

The app runs at http://localhost:5173.

Live Demo

[Add your deployed link here, if applicable]

Feasibility & Scalability Notes

  • 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.email and 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages