# himanshusalagre/fintech-open-month-hackathon architecture

> Architecture diagram of the GitHub repository himanshusalagre/fintech-open-month-hackathon, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/himanshusalagre/fintech-open-month-hackathon
- Repository: https://github.com/himanshusalagre/fintech-open-month-hackathon

## Overview

Investment Spot is an Express/MongoDB web app connecting startup founders and investors. Visitors browse startup and investor listings, educational and school/college sections, and featured stories; founders and investors can register and sign in, with separate dashboard pages. The payment flow uses Razorpay order creation and payment lookup. The graph reflects the README’s broader capabilities, but several route and view implementations were not sampled, so links for those features are limited to documented routing/controller structure.

Main entry points: [`controllers/homeController.js`](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/homeController.js) (Page controller), [`routes/index.js`](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/index.js) (Application routes), [`index.js`](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/index.js) (Express server), [`config/passport-strategy-local.js`](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/config/passport-strategy-local.js) (Local authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_server["Express server<br/>[index.js]"]
  node_router["Application routes<br/>[index.js]"]
  node_home["Page controller<br/>[homeController.js]"]
  node_pageviews["Site pages<br/>[index.ejs]"]
end

subgraph group_identity["Accounts and identity"]
  node_signup_routes["Signup routes<br/>[signUp.js]"]
  node_investor_routes["Investor routes<br/>[investor.js]"]
  node_startup_routes["Startup routes<br/>[startup.js]"]
  node_signup_controller["Signup pages"]
  node_investor_controller["Investor accounts"]
  node_startup_controller["Startup accounts"]
  node_passport["Local authentication"]
  node_investor_model["Investor records<br/>[investor.js]"]
end

subgraph group_marketplace["Startup-investor marketplace"]
  node_startup_model["Startup records<br/>[startup.js]"]
  node_startup_list["Startup listings<br/>[startups.ejs]"]
  node_investor_list["Investor listings<br/>[investors.ejs]"]
end

subgraph group_resources["Learning and discovery"]
  node_learn["Learning section<br/>[learn.ejs]"]
  node_education["School and college startups"]
  node_featured["Featured stories<br/>[featured.ejs]"]
end

subgraph group_payments["Payments"]
  node_razor_view["Payment page<br/>[razorpay.ejs]"]
end

node_visitor(("Visitor"))
node_mongo[("MongoDB")]
node_razorpay{{"Razorpay API"}}

node_visitor -->|"requests pages"| node_server
node_server -->|"dispatches routes"| node_router
node_router -->|"dispatches pages"| node_home
node_home -->|"renders pages"| node_pageviews
node_router -->|"mounts signup"| node_signup_routes
node_router -->|"mounts investor"| node_investor_routes
node_router -->|"mounts startup"| node_startup_routes
node_signup_routes -->|"serves signup"| node_signup_controller
node_investor_routes -->|"dispatches account actions"| node_investor_controller
node_startup_routes -->|"dispatches account actions"| node_startup_controller
node_investor_routes -->|"authenticates"| node_passport
node_startup_routes -->|"authenticates"| node_passport
node_investor_controller -->|"creates and looks up"| node_investor_model
node_startup_controller -->|"creates and looks up"| node_startup_model
node_passport -->|"checks identity"| node_investor_model
node_passport -->|"checks identity"| node_startup_model
node_investor_model -->|"persists records"| node_mongo
node_startup_model -->|"persists records"| node_mongo
node_home -->|"renders listing"| node_startup_list
node_home -->|"renders listing"| node_investor_list
node_home -->|"renders section"| node_learn
node_home -->|"renders section"| node_education
node_home -->|"renders stories"| node_featured
node_server -->|"renders payment page"| node_razor_view
node_server -->|"creates orders and fetches payments"| node_razorpay

click node_server "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/index.js"
click node_router "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/index.js"
click node_home "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/homeController.js"
click node_pageviews "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/index.ejs"
click node_signup_routes "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/signUp.js"
click node_investor_routes "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/investor.js"
click node_startup_routes "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/startup.js"
click node_signup_controller "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/signupController.js"
click node_investor_controller "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/investorsController.js"
click node_startup_controller "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/startupController.js"
click node_passport "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/config/passport-strategy-local.js"
click node_investor_model "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/models/investor.js"
click node_startup_model "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/models/startup.js"
click node_startup_list "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/startups.ejs"
click node_investor_list "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/investors.ejs"
click node_learn "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/learn.ejs"
click node_education "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/school_colleges.ejs"
click node_featured "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/featured.ejs"
click node_razor_view "https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/razorpay.ejs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_router,node_home,node_pageviews toneBlue
class node_signup_routes,node_investor_routes,node_startup_routes,node_signup_controller,node_investor_controller,node_startup_controller,node_passport,node_investor_model,node_mongo toneAmber
class node_startup_model,node_startup_list,node_investor_list,node_razorpay toneMint
class node_learn,node_education,node_featured toneRose
class node_razor_view,node_visitor toneIndigo
```

## Components

### Web application

- [Express server](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/index.js): `index.js`
- [Application routes](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/index.js): `routes/index.js`
- [Page controller](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/homeController.js): `controllers/homeController.js`
- [Site pages](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/index.ejs): `views/index.ejs`

### Accounts and identity

- [Signup routes](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/signUp.js): `routes/signUp.js`
- [Investor routes](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/investor.js): `routes/investor.js`
- [Startup routes](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/routes/startup.js): `routes/startup.js`
- [Signup pages](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/signupController.js): `controllers/signupController.js`
- [Investor accounts](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/investorsController.js): `controllers/investorsController.js`
- [Startup accounts](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/controllers/startupController.js): `controllers/startupController.js`
- [Local authentication](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/config/passport-strategy-local.js): `config/passport-strategy-local.js`
- [Investor records](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/models/investor.js): `models/investor.js`

### Startup-investor marketplace

- [Startup records](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/models/startup.js): `models/startup.js`
- [Startup listings](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/startups.ejs): `views/startups.ejs`
- [Investor listings](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/investors.ejs): `views/investors.ejs`

### Learning and discovery

- [Learning section](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/learn.ejs): `views/learn.ejs`
- [School and college startups](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/school_colleges.ejs): `views/school_colleges.ejs`
- [Featured stories](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/featured.ejs): `views/featured.ejs`

### Payments

- [Payment page](https://github.com/himanshusalagre/fintech-open-month-hackathon/blob/main/views/razorpay.ejs): `views/razorpay.ejs`

### Other components

- **Visitor**
- **MongoDB**
- **Razorpay API**

## Connections

- Visitor → Express server: requests pages
- Express server → Application routes: dispatches routes
- Application routes → Page controller: dispatches pages
- Page controller → Site pages: renders pages
- Application routes → Signup routes: mounts signup
- Application routes → Investor routes: mounts investor
- Application routes → Startup routes: mounts startup
- Signup routes → Signup pages: serves signup
- Investor routes → Investor accounts: dispatches account actions
- Startup routes → Startup accounts: dispatches account actions
- Investor routes → Local authentication: authenticates
- Startup routes → Local authentication: authenticates
- Investor accounts → Investor records: creates and looks up
- Startup accounts → Startup records: creates and looks up
- Local authentication → Investor records: checks identity
- Local authentication → Startup records: checks identity
- Investor records → MongoDB: persists records
- Startup records → MongoDB: persists records
- Page controller → Startup listings: renders listing
- Page controller → Investor listings: renders listing
- Page controller → Learning section: renders section
- Page controller → School and college startups: renders section
- Page controller → Featured stories: renders stories
- Express server → Payment page: renders payment page
- Express server → Razorpay API: creates orders and fetches payments
