Skip to content

RakshitKashyap1/BBO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ™οΈ Billboard Organiser (BBO) - The "Where Did I Put That Giant Sign?" Manager

BBO Banner

The Ultimate Bridge Between Brands and Billboards. No safety harness required.

Billboard Organiser (BBO.) is a high-performance, role-based platform designed to revolutionise the billboard advertising industry. Built with a striking Neo-Brutalist aesthetic, it's the only app that looks as bold as a 40-foot sign on the highway. We help advertisers, asset owners, and administrators manage high-visibility spaces without the high-visibility headaches.


⚑ Why BBO. is Cooler Than a Times Square Jumbotron

  • 🎨 Neo-Brutalist UI: We hate rounded corners. Every button has a shadow so thick you could trip over it.
  • πŸ” Role-Based Access (RBAC): Customised dashboards so Advertisers don't accidentally try to sell their own billboards.
  • πŸ’Έ Startup-Grade Pricing Engine: Dynamic multipliers! Mumbai premiums! Seasonal surges! It's like Uber, but for static 2D objects.
  • πŸš€ Scalable Architecture: A backend so organized it probably color-codes its socks.
  • πŸ“Š Real-time Analytics: See how many people are looking at your ad instead of the road (Disclaimer: BBO. is not responsible for traffic accidents).

🏒 Platform Roles

πŸ“’ For Advertisers (The Spend-y Folks)

Browse. Book. Bloom.

  • Find prime locations before your competitors do.
  • Manage multi-city campaigns while sipping your third espresso.
  • Upload high-res creatives that look stunning on 50-foot canvases.

🏠 For Billboard Owners (The Landlords of the Sky)

List. Lease. Lead.

  • Turn that giant metal frame on your roof into a money printer.
  • Manage bookings and track earnings with zero spreadsheets.
  • Automated pricing so you don't leave money on the table (or the highway).

πŸ›‘οΈ For Administrators (The Overlords)

Govern. Guide. Grow.

  • See everything. Control everything. Feel powerful.
  • Monitor global analytics and platform health.
  • Keep the riff-raff out and the payments flowing.

πŸ› οΈ Tech Stack: The Engine Room

We leverage modern technologies to ensure speed, security, and the ability to handle millions of impressions.

  • Backend: Django & DRF (The brains/muscle)
  • Frontend: React 18 + Vite ⚑ (The pretty face)
  • API: Centralized v1 Versioning πŸ—ΊοΈ (The future-proofing)
  • Design: Custom Neo-Brutalist CSS System 🎨 (The attitude)
  • Database: PostgreSQL (Where the giant sign data sleeps)

πŸš€ Quick Start (One-Click Setup)

We've automated the boring stuff. If you're on Windows, run the PowerShell script. If you're on macOS/Linux, use the bash script.

For Windows Users (PowerShell)

./setup.ps1

For Unix/Linux/macOS Users (Bash)

chmod +x setup.sh
./setup.sh

🌩️ Cloud Database Setup (Supabase)

If you're moving beyond localhost and want to use a hosted database like Supabase, follow these steps:

1. Create a Project

  • Sign up at Supabase.
  • Create a new project.
  • Navigate to Project Settings > Database.

2. Get Connection Details

You'll need the following info from your Supabase dashboard:

  • Host: db.xxxx.supabase.co (or use the Connection Pooling host for high-volume apps).
  • Port: 6543 (usually for Transaction pooling).
  • Database Name: postgres (default).
  • User: postgres.xxxxxxx (your unique project ID).
  • Password: The password you set during project creation.

3. Update your .env

In your backend/.env file, update the following fields:

DB_NAME=postgres
DB_USER=postgres.xxxxxxxxxxxxxxxxxxxx
DB_PASSWORD=your_secure_password
DB_HOST=aws-0-xxxx-xxxx-xxxx.pooler.supabase.com
DB_PORT=6543

Alternatively, you can provide a single DB_URL string if you prefer:

DB_URL=postgresql://postgres.xxxx:your_pass@db.xxxx.supabase.co:5432/postgres

4. Apply Migrations & Seed

Once connected, run:

# Apply schema
python manage.py migrate

# Seed with Indian billboard data (Optional, but recommended)
python manage.py shell -c "import seed_db; seed_db.seed_data()"
# OR simply
python seed_db.py

πŸ” Security & Best Practices

To keep the "Organiser" in BBO. organized and secure:

  1. Never commit .env files: Our .gitignore is pre-configured to skip these. If you accidentally commit one, rotate your secrets immediately!
  2. Environment Templates: Always update .env.example if you add new variables so other devs know what to configure.
  3. Database Secrets: Use a strong password for your Supabase instance. Avoid using default passwords like admin123.
  4. JWT Security: The DJANGO_SECRET_KEY is currently set to a default for local development. For production, generate a long, random string.

πŸ› οΈ Manual Setup

If you prefer to do things by hand (we respect that), follow these steps:

Prerequisites: Node.js and Python 3.10+ installed.

1. Clone the Beast

git clone https://github.com/RakshitKashyap1/BillBoardOrganiser.git
cd BillBoardOrganiser

2. Frontend Power-Up

# Copy environment variables
cp .env.example .env

# Install and run
npm install
npm run dev

3. Backend Brain-Transfer

cd backend

# Copy environment variables
cp .env.example .env

# Create virtual environment
python -m venv venv
./venv/Scripts/Activate.ps1 # Or 'source venv/bin/activate' on Mac/Linux

# Install dependencies
pip install -r requirements.txt

# Run migrations and start server
python manage.py migrate
python manage.py runserver

πŸ“ Project Structure

Navigating a new codebase can be like finding a specific billboard in a storm. Here's your map:

.
β”œβ”€β”€ backend/            # Django REST Backend
β”‚   β”œβ”€β”€ api/            # Versioned API logic (v1)
β”‚   β”œβ”€β”€ apps/           # Core Django apps (users, ads, bookings)
β”‚   β”œβ”€β”€ bbo_backend/    # Main Django settings/config
β”‚   └── requirements.txt # Python dependencies
β”œβ”€β”€ src/                # React Frontend
β”‚   β”œβ”€β”€ components/     # UI components (Neo-Brutalist inspired)
β”‚   β”œβ”€β”€ pages/          # Full page views
β”‚   β”œβ”€β”€ services/       # API clients and business logic
β”‚   └── styles/         # Custom Neo-Brutalist CSS
β”œβ”€β”€ public/             # Static assets (images, fonts)
β”œβ”€β”€ setup.ps1           # Windows automation script
β”œβ”€β”€ setup.sh            # Unix automation script
β”œβ”€β”€ .env.example        # Environment variable templates

πŸ§ͺ Advanced Pricing Engine: The "Secret Sauce"

Our pricing_engine.py isn't a basic calculator. It's an AdTech masterpiece:

  • Mumbai Premium: +50% cost (Because naturally, Mumbai).
  • Seasonal Surge: +30% in Nov/Dec (Ho ho ho, pay up).
  • Bulk Discount: -10% if you're booking for more than 30 days.

🎨 Design Philosophy: Neo-Brutalism

BBO. isn't just another corporate dashboard with soft shadows and pastel colors. We embrace the Neo-Brutalism trend:

  • Hard Truths, Hard Shadows: Solid black offsets only.
  • Thick Outlines: 3px borders because we're not afraid of commitment.
  • Vibrant Chaos: Indigo, Pink, and Yellow. Your eyes won't be bored.

Built with passion and too much coffee for the future of Out-Of-Home advertising. πŸŒƒ

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors