Skip to content

Elias569/fintech-app

Repository files navigation

What is fintech?

Fintech Frontend + Backend Prototype is a streamlined, AI-driven platform that connects startups with investors through intelligent matching. It integrates a Vite-based frontend with a FastAPI backend to deliver a fast, modular, and scalable system.

Startups upload pitch decks, investors define their thesis and preferences, and the platform generates high-quality matches on both sides. An embedded AI service produces personalized introduction emails, reducing friction in initial outreach.

The system follows a clean three-layer architecture, client interface, API layer, and data layer, using an in-memory store for rapid prototyping with clear extensibility toward production-grade databases. Core workflows include deck ingestion, investor onboarding, bidirectional match discovery, and AI-assisted communication, all accessible through well-documented APIs via Swagger.

Backend setup

cd backend
pip install -r requirements.txt
cp .env.example .env
# paste your real OPENAI_API_KEY in backend/.env
uvicorn main:app --reload --port 8000

API base URL from frontend: http://localhost:8000

Key endpoints

  • POST /startup/upload-deck — upload a startup pitch deck PDF
  • GET /startup/{id}/matches — get investor matches for a startup
  • POST /investor/register — register investor thesis/preferences
  • GET /investor/{id}/dealflow — get startup dealflow for investor
  • GET /intro/{startup_id}/{investor_id} — generate intro email
  • GET /docs — interactive Swagger docs

Frontend setup

npm install
npm run dev

Open Vite local URL (typically http://localhost:5173).

Redis (optional)

Redis speeds up expensive GPT match scoring on the backend and lets Node tooling share the same cache namespace.

docker compose up -d redis
cp .env.example .env          # REDIS_URL for Node scripts
cp backend/.env.example backend/.env   # REDIS_URL + OPENAI_API_KEY for FastAPI
  • Python backend — uses redis (see backend/redis/); caches GET /startup/{id}/matches for 5 minutes when REDIS_URL is set.
  • Node (ioredis)server/redis/ helpers for scripts and tooling; same fintech-et: key prefix. Import only from Node, not from React components.

When REDIS_URL is unset, the API and helpers fall back to uncached behaviour.

Auth flow notes

  • Frontend auth is currently local/demo mode (no backend auth API).
  • Use any non-empty name, email, and password to continue.
  • Role selected on sign-in decides dashboard route:
    • startup → startup dashboard
    • investor → investor dashboard
  • Session is persisted in localStorage; use the Logout button to clear it.

Auth + role dashboards (frontend)

  • Users first land on a simple auth screen and choose role (startup or investor).
  • Startup users are routed to startup dashboard flow.
  • Investor users are routed to investor dashboard flow.

3-minute API demo (copy/paste)

After backend is running on http://localhost:8000, run the following in a new terminal.

1) Register an investor

curl -s -X POST http://localhost:8000/investor/register \
  -H "Content-Type: application/json" \
  -d '{
    "partner_name":"Priya Mehta",
    "firm_name":"Nexus Venture Partners",
    "thesis":"We back fintech infrastructure startups in India.",
    "sectors":"Fintech, SaaS",
    "stages":"Seed, Series A"
  }'

Copy the investor_id from response.

2) Upload startup deck

curl -s -X POST http://localhost:8000/startup/upload-deck \
  -F "file=@/absolute/path/to/pitch-deck.pdf"

Copy the startup_id from response.

3) Get startup -> investor matches

curl -s "http://localhost:8000/startup/<startup_id>/matches"

4) Get investor dealflow

curl -s "http://localhost:8000/investor/<investor_id>/dealflow"

5) Generate intro email draft

curl -s "http://localhost:8000/intro/<startup_id>/<investor_id>"

6) (Optional) Case #6 demo endpoints

curl -s "http://localhost:8000/india-investor/opportunity-radar"
curl -s "http://localhost:8000/india-investor/chart-patterns/RELIANCE"
curl -s -X POST "http://localhost:8000/india-investor/market-chat" \
  -H "Content-Type: application/json" \
  -d '{"question":"Any near-term breakout opportunities?","portfolio":["INFY","HDFCBANK"]}'

About

fintech app

Topics

Resources

Stars

132 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors