A comprehensive ad campaign management platform built with Node.js, Express, React, and PostgreSQL.
- Campaign Management: Create and manage ad campaigns
- Asset Management: Upload headlines, ad copy, images, and videos
- Budget Control: Set lifetime budgets for campaigns
- Location Targeting: Specify target locations for campaigns
- Google Drive Storage: Secure storage for images and videos
- Backend: Node.js, Express, TypeScript, Prisma ORM
- Frontend: React, TypeScript, Vite
- Database: PostgreSQL
- File Storage: Google Drive API
- Authentication: JWT
- Node.js 18+
- PostgreSQL 14+
- Google Cloud Project with Drive API enabled
- Install dependencies:
npm run install:all- Set up environment variables:
# Backend (.env)
cp backend/.env.example backend/.env
# Configure DATABASE_URL, JWT_SECRET, and Google Drive credentials- Run database migrations:
cd backend
npx prisma migrate dev- Start development servers:
npm run devThe backend will run on http://localhost:3000 and frontend on http://localhost:5173.
POST /api/campaigns- Create new campaignGET /api/campaigns- List all campaignsGET /api/campaigns/:id- Get campaign detailsPUT /api/campaigns/:id- Update campaignDELETE /api/campaigns/:id- Delete campaign
POST /api/campaigns/:id/assets- Upload campaign assetsGET /api/campaigns/:id/assets- Get campaign assetsDELETE /api/assets/:id- Delete asset
- Create a project in Google Cloud Console
- Enable Google Drive API
- Create OAuth 2.0 credentials
- Download credentials and save as
backend/credentials.json - Run the app - first time will prompt for authorization
MIT