🌐 Live App: https://media-matrix-one.vercel.app/
MediaMatrix is a professional-grade Digital Asset Management (DAM) platform for seamless uploading, organizing, and discovering high-quality digital assets.
| Service | URL |
|---|---|
| Frontend | https://media-matrix-one.vercel.app/ |
| Backend API | (deploy to Render — see below) |
| Health Check | GET /api/health |
- Smart Search — ElasticSearch-powered full-text search with MongoDB fallback
- Cloud Storage — Firebase Cloud Storage for secure, scalable media hosting
- Folder Organization — Hierarchical folder-based asset management
- Authentication — JWT-based login/register with role-based access control
- Subscription Plans — Razorpay-integrated payment flows
- Analytics — Built-in page-view and event tracking via
/api/analytics - Performance — HTTP compression, helmet security headers, Morgan request logging
| Layer | Technology |
|---|---|
| Frontend | React 19, Tailwind CSS, Vite |
| Backend | Node.js, Express, Mongoose |
| Database | MongoDB (Atlas recommended) |
| Search | ElasticSearch (with MongoDB fallback) |
| Storage | Firebase Cloud Storage |
| Payments | Razorpay |
| Logging | Morgan (HTTP), console (app) |
┌─────────────────────────────────────────────────┐
│ Browser (React) │
│ Pages: Home / Search / Details / Subscription │
│ Context: AuthContext, ToastContext │
│ Analytics: trackPageView() on every route │
└──────────────────┬──────────────────────────────┘
│ HTTPS (Axios / fetch)
┌──────────────────▼──────────────────────────────┐
│ Express API (Node.js) │
│ Middleware: Helmet · Compression · Morgan │
│ Routes: /auth /assets /search /folders │
│ /payments /analytics /health │
└────┬──────────────┬────────────────┬────────────┘
│ │ │
┌────▼────┐ ┌──────▼──────┐ ┌─────▼──────┐
│ MongoDB │ │ElasticSearch│ │ Firebase │
│ Atlas │ │ (Search) │ │ Storage │
└─────────┘ └─────────────┘ └────────────┘
- Node.js v18+
- MongoDB (local or Atlas)
- Firebase project (for Storage)
- ElasticSearch (optional — app falls back to MongoDB)
git clone https://github.com/your-username/MediaMatrix.git
cd MediaMatrixcd backend
npm install
cp .env.example .env
# Fill in your credentials in .env
npm run devcd frontend
npm install
cp .env.example .env
# Set VITE_API_URL and VITE_BACKEND_URL in .env
npm run dev- Create a new Web Service on render.com
- Connect your GitHub repo, set Root Directory to
backend - Build command:
npm install - Start command:
node server.js - Add all environment variables from
.env.example - The
render.yamlin the repo root pre-configures this for you
- Import the repo on vercel.com
- Set Root Directory to
frontend - Framework preset: Vite
- Add environment variables:
VITE_API_URL=https://your-render-url.onrender.com/apiVITE_BACKEND_URL=https://your-render-url.onrender.com
- The
vercel.jsonhandles SPA routing automatically
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Service health + DB/ES/Firebase status |
| POST | /api/auth/register |
Register a new user |
| POST | /api/auth/login |
Login and receive JWT |
| GET | /api/auth/me |
Get current user (protected) |
| GET | /api/assets |
List assets (paginated, filterable) |
| POST | /api/assets |
Upload a new asset |
| GET | /api/search?q=&type= |
Full-text search |
| GET | /api/folders |
List folders |
| POST | /api/folders |
Create a folder |
| POST | /api/payments/order |
Create Razorpay order |
| POST | /api/analytics/track |
Track a page/event |
| GET | /api/analytics/summary |
View analytics stats (protected) |
MediaMatrix/
├── backend/
│ ├── src/
│ │ ├── config/ # DB, Firebase, ElasticSearch
│ │ ├── controllers/ # Business logic
│ │ ├── middleware/ # Auth, upload
│ │ ├── models/ # Mongoose schemas
│ │ ├── routes/ # Express routers
│ │ └── utils/ # Helpers
│ ├── server.js
│ └── .env.example
├── frontend/
│ ├── src/
│ │ ├── components/ # Navbar, UploadModal, ProtectedRoute
│ │ ├── context/ # AuthContext, ToastContext
│ │ ├── pages/ # Home, Search, Details, Subscription
│ │ └── utils/ # analytics.js
│ ├── vercel.json
│ └── .env.example
├── render.yaml
└── README.md
- Suhaan — Backend Engineering (Auth, ElasticSearch, Infrastructure, Analytics)
- Abhay — Frontend Engineering (UX/UI, React Architecture, Firebase)
MIT