 and formats (Story, Feed, Carousel). This platform automates the entire workflow from upload to download.
- π Authentication & Authorization - Role-based access control (Admin/User)
- π€ Asset Upload - Drag & drop interface with validation (PNG/JPEG, 50MB limit)
- βοΈ Manual Editing - Canvas-based editor with text overlay and logo placement
- π€ AI Integration - Multiple AI provider selection (OpenAI, Midjourney, Stable Diffusion)
- π± Multi-Platform Support - Instagram, LinkedIn, YouTube format adaptation
- β‘ Batch Processing - Generate multiple variants simultaneously
- π Progress Tracking - Real-time job monitoring with status updates
- πΎ Download Management - Individual and bulk ZIP downloads
- π¨βπΌ Admin Panel - System management and AI provider configuration
- React 18.2.0 - Component-based UI library
- React Router v6 - Client-side routing
- Axios - HTTP client with interceptors
- Lucide React - Modern icon library
- React Dropzone - File upload interface
- Fabric.js - Canvas manipulation
- React Toastify - Notifications
- Flask 2.3.3 - Python web framework
- Flask-CORS - Cross-origin resource sharing
- Python 3.13 - Server-side logic
- Create React App - React development environment
- ESLint & Prettier - Code formatting and linting
- Git - Version control
- Node.js >= 16.0.0
- Python >= 3.8
- npm or yarn
- Git
git clone https://github.com/Samy-rgb/topcoder.git
cd topcoder
cd backend
pip install -r requirements.txt
python app.py
The backend will start on http://localhost:8000
# Return to root directory
cd ..
# Install dependencies
npm install
# Create environment file
echo "REACT_APP_API_URL=http://localhost:8000/api" > .env
echo "REACT_APP_ENVIRONMENT=development" >> .env
# Start development server
npm start
The frontend will start on http://localhost:3000
Role | Username | Password | Access Level |
---|---|---|---|
Admin | admin |
admin123 |
Full system access |
User | user |
user123 |
Standard user features |
- Login - Use test credentials to access the system
- Upload Assets - Drag and drop high-resolution images
- Select Formats - Choose target platforms and formats
- Edit Manually (Optional) - Add text overlays or logos
- Choose AI Provider - Select from available AI services
- Generate Variants - Start batch processing
- Monitor Progress - Track generation in real-time
- Download Results - Get individual files or bulk ZIP
POST /api/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "admin123"
}
POST /api/assets/upload
Content-Type: multipart/form-data
# Upload file with metadata
GET /api/generation/providers
# Returns available AI providers
POST /api/generation/generate
Content-Type: application/json
{
"assetIds": ["asset-id-1"],
"formatIds": ["format-id-1"],
"providerId": "openai"
}
topcoder/
βββ π README.md
βββ π .env
βββ π .gitignore
βββ π package.json
βββ π public/
βββ π src/
β βββ π components/
β β βββ π auth/
β β βββ π common/
β β βββ π upload/
β β βββ π editor/
β β βββ π generation/
β β βββ π download/
β βββ π pages/
β β βββ π Login.js
β β βββ π Dashboard.js
β β βββ π AdminDashboard.js
β β βββ π Upload.js
β β βββ π Generation.js
β β βββ π Downloads.js
β βββ π services/
β β βββ π api.js
β β βββ π auth.js
β β βββ π generation.js
β βββ π styles/
βββ π backend/
βββ π app.py
βββ π requirements.txt
βββ π README.md
![Dashboard Interface showing asset management and generation options]
![Dropdown interface for selecting AI providers before generation]
![System management interface for administrators]
npm run build
# Deploy the build/ directory
# Create Procfile
echo "web: python app.py" > Procfile
# Deploy with requirements.txt
# Production environment
REACT_APP_API_URL=https://your-backend-url/api
REACT_APP_ENVIRONMENT=production
- React.js frontend for user panel
- User authentication with role-based routing
- High-resolution asset upload with validation
- Platform and format selection interface
- Manual editing capabilities with metadata saving
- AI Provider dropdown before "Generate With AI" button
- Batch asset generation workflow
- Individual and bulk download functionality
- Real-time job progress tracking
- Complete backend API integration
- Admin panel for system management
- All specified UI screens implemented
- User workflow matches design specifications
- AI Provider selector positioned as required
- Complete user journey from upload to download
This project was created for the TopCoder Creative Asset Automation Challenge.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow existing code formatting
- Use meaningful commit messages
- Add comments for complex logic
- Test changes before submitting
CORS Errors
# Ensure Flask-CORS is installed
pip install flask-cors
Port Conflicts
# Change backend port
python app.py --port 8001
# Update .env file
REACT_APP_API_URL=http://localhost:8001/api
Missing Dependencies
# Frontend
npm install
# Backend
pip install -r requirements.txt
For questions or issues:
- π§ Create an issue in this repository
- π Check the documentation
- π Review existing issues
This project is licensed under the MIT License - see the LICENSE file for details.
Samy-rgb
![Status](https://img.shields.io/io/badge/TopCoderopCoder evaluation.**
β Star this repository if you found it helpful!
Built with β€οΈ for TopCoder Creative Asset Automation Challenge