Skip to content

cwvedvik/admachine

Repository files navigation

AdMachine - Ad Campaign Management Software

A comprehensive ad campaign management platform built with Node.js, Express, React, and PostgreSQL.

Features

  • 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

Tech Stack

  • Backend: Node.js, Express, TypeScript, Prisma ORM
  • Frontend: React, TypeScript, Vite
  • Database: PostgreSQL
  • File Storage: Google Drive API
  • Authentication: JWT

Setup

Prerequisites

  • Node.js 18+
  • PostgreSQL 14+
  • Google Cloud Project with Drive API enabled

Installation

  1. Install dependencies:
npm run install:all
  1. Set up environment variables:
# Backend (.env)
cp backend/.env.example backend/.env
# Configure DATABASE_URL, JWT_SECRET, and Google Drive credentials
  1. Run database migrations:
cd backend
npx prisma migrate dev
  1. Start development servers:
npm run dev

The backend will run on http://localhost:3000 and frontend on http://localhost:5173.

API Endpoints

Campaigns

  • POST /api/campaigns - Create new campaign
  • GET /api/campaigns - List all campaigns
  • GET /api/campaigns/:id - Get campaign details
  • PUT /api/campaigns/:id - Update campaign
  • DELETE /api/campaigns/:id - Delete campaign

Assets

  • POST /api/campaigns/:id/assets - Upload campaign assets
  • GET /api/campaigns/:id/assets - Get campaign assets
  • DELETE /api/assets/:id - Delete asset

Google Drive Setup

  1. Create a project in Google Cloud Console
  2. Enable Google Drive API
  3. Create OAuth 2.0 credentials
  4. Download credentials and save as backend/credentials.json
  5. Run the app - first time will prompt for authorization

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages