Adversity is a web application designed to connect sponsors and influencers for seamless collaboration on advertising campaigns. The platform enables sponsors to create campaigns, request influencers for promotions, and allows influencers to accept, reject, or negotiate these requests. Adversity focuses on delivering a smooth user experience, efficient data management, and actionable insights for both sponsors and influencers.
- User roles: Admin, Sponsor, Influencer.
- Role-based permissions to ensure secure access to platform features.
- Overview of active users, campaigns, ad requests, flagged users, and inappropriate content.
- Platform-wide statistics and reporting functionality.
- Sponsors can create, update, and delete campaigns.
- Ad request management: influencers can accept, reject, or negotiate ad requests.
- Sponsors: Search for influencers by reach, followers, niche, and engagement. Influencers: Search for public campaigns based on relevance to their niche.
- Redis caching improves data retrieval speed, with appropriate cache expiry configurations.
- Daily reminders for pending ad requests sent to influencers.
- Monthly reports summarizing campaign performance for sponsors.
- CSV export feature for detailed campaign information.
Before running the application, make sure you have the following installed:
- Python
- Node.js
- Redis
- Backend: Flask (server-side operations, RESTful API).
- Frontend: Vue.js (dynamic UI), Bootstrap (responsive design), Jinja2 (templating).
- Database: SQLite (data storage and management).
- Caching: Redis (performance optimization).
- Task Queue: Celery (background task handling).
- Charts: Chart.js (data visualization for admin dashboard).
- Email Testing: MailHog (development environment email simulation).
- Clone the repository
git clone https://github.com/puwun/adversity.git
cd adversity/server- Create and activate virtual environment
python -m venv venv
.\venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Initialize the database
flask db upgrade- Start Redis server (WSL)
redis-server- Start Celery worker:
celery -A app:celery_app worker --loglevel=INFO- Start Celery beat:
celery -A app:celery_app beat -l INFO- Start the server
flask run- Navigate to client directory
cd ../client- Install dependencies
npm install. Start development server
npm run dev- Frontend:
http://localhost:3000 - Backend:
http://localhost:5000 - Redis:
localhost:6379

