π 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