A comprehensive Electronic Press Kit (EPK) platform for artists, musicians, and creative professionals. Built with modern web technologies and designed for scalability across web, iOS, and Android platforms.
- Multi-Platform Support: Web application, iOS, and Android mobile apps
- Professional EPK Builder: Create stunning electronic press kits with ease
- Media Management: Upload and organize photos, videos, and music tracks
- Analytics Dashboard: Track views, engagement, and performance metrics
- Team Collaboration: Multi-user support with role-based permissions
- Custom Branding: Personalize your EPK with custom themes and branding
- Social Integration: Connect with Spotify, Apple Music, and social media platforms
- Contact Management: Built-in contact forms and inquiry management
- SEO Optimized: Search engine friendly EPK pages
This project follows a monorepo structure with the following components:
presskit-pro/
βββ server/              # Node.js/Express API backend
βββ client-web/          # Next.js web application
βββ client-mobile/       # React Native/Expo mobile app
βββ client-web-app/      # Alternative web client
βββ docs/               # Documentation
- Node.js with Express.js
- TypeScript for type safety
- MongoDB with Mongoose ODM
- JWT authentication
- Cloudinary for media storage
- Stripe for payment processing
- Winston for logging
- Jest for testing
- Next.js 15 with App Router
- React 18 with TypeScript
- Tailwind CSS for styling
- Framer Motion for animations
- React Hook Form for form handling
- SWR for data fetching
- React Native with Expo
- TypeScript support
- Expo Router for navigation
- React Native Paper for UI components
- AsyncStorage for local data
- Node.js >= 18.0.0
- npm >= 8.0.0
- MongoDB (local or cloud instance)
- Cloudinary account for media storage
- Stripe account for payments (optional)
git clone https://github.com/yourusername/presskit-pro.git
cd presskit-pro# Install root dependencies and setup all projects
npm install
npm run setupCopy the environment example files and configure them:
# Server environment
cp server/.env.example server/.env
# Web client environment
cp client-web/.env.local.example client-web/.env.local
# Mobile client environment
cp client-mobile/.env.example client-mobile/.envEdit the .env files with your configuration:
NODE_ENV=development
PORT=5000
MONGODB_URI=mongodb://localhost:27017/presskit-pro
JWT_SECRET=your-jwt-secret
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret
STRIPE_SECRET_KEY=your-stripe-secret-key
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=[email protected]
EMAIL_PASS=your-email-password# Start all services concurrently
npm run dev
# Or start individually
npm run dev:server    # Backend API (http://localhost:5000)
npm run dev:web       # Web app (http://localhost:3000)
npm run dev:mobile    # Mobile app (Expo DevTools)- Getting Started Guide
- API Documentation
- Development Guidelines
- Deployment Guide
- Contributing Guidelines
# Run all tests
npm test
# Run tests for specific project
npm run test:server
npm run test:web
npm run test:mobile
# Run tests in watch mode
npm run test:watch- ESLint for code linting
- Prettier for code formatting
- Husky for pre-commit hooks
- lint-staged for staged file linting
# Development
npm run dev              # Start all development servers
npm run dev:server       # Start backend server
npm run dev:web          # Start web application
npm run dev:mobile       # Start mobile app
# Building
npm run build            # Build all projects
npm run build:server     # Build backend
npm run build:web        # Build web app
# Testing
npm test                 # Run all tests
npm run test:watch       # Run tests in watch mode
npm run test:coverage    # Generate coverage report
# Code Quality
npm run lint             # Lint all projects
npm run lint:fix         # Fix linting issues
npm run format           # Format code with Prettier
npm run type-check       # Run TypeScript type checking
# Utilities
npm run clean            # Clean build artifacts
npm run reset            # Clean and reinstall dependencies# Build all projects for production
npm run build
# Start production server
npm start# Build and run with Docker Compose
docker-compose up --build- Development: Automatic deployment on push to developbranch
- Staging: Automatic deployment on push to stagingbranch
- Production: Manual deployment from mainbranch
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Make your changes
- Run tests and linting (npm test && npm run lint)
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check our docs directory
- Issues: Report bugs on GitHub Issues
- Discussions: Join our GitHub Discussions
- Email: Contact us at [email protected]
- Next.js for the amazing React framework
- Expo for simplifying React Native development
- MongoDB for the flexible database solution
- Cloudinary for media management
- Stripe for payment processing
Current version: 1.0.0
- β Backend API development
- β Web application foundation
- β Mobile app setup
- π§ Authentication system
- π§ EPK builder interface
- π Analytics dashboard (planned)
- π Team collaboration features (planned)
Built with β€οΈ by the PressKit Pro Team