A full-stack web application for image processing with multiple modules including Ready to Use, Drisya Look, and Surprise features.
- Frontend: React, TypeScript, Vite, Tailwind CSS
- Backend: Node.js, Express, TypeScript
- Database: MySQL with Drizzle ORM
- UI Components: Radix UI, Lucide React
- Payment: Stripe integration
- Authentication: Passport.js
Before running this project, make sure you have:
- Node.js (v18 or higher)
- XAMPP with MySQL running
- npm or yarn package manager
git clone <repository-url>
cd DrisyaMagic
npm install- Start XAMPP and ensure MySQL is running
- Open phpMyAdmin at
http://localhost/phpmyadmin/ - Create a new database called
drisyamagic - The
.envfile is already configured for XAMPP's default MySQL settings:
DATABASE_URL=mysql://root@localhost:3306/drisyamagic
PORT=5000
NODE_ENV=developmentIf you have set a password for MySQL root user, update the DATABASE_URL accordingly:
DATABASE_URL=mysql://root:your_password@localhost:3306/drisyamagicRun the database migration to create tables:
npm run db:pushStart the development server:
npm run devThe application will be available at http://localhost:5000
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run check- Type checkingnpm run db:push- Push database schema changes
├── client/ # React frontend
├── server/ # Express backend
├── shared/ # Shared types and schemas
├── attached_assets/ # Static assets
└── dist/ # Built files
- Ready to Use Module: Quick image processing
- Drisya Look Module: Platform-specific image optimization (Instagram, Amazon, Website, Facebook)
- Surprise Module: Theme-based image/video processing
- Coin System: Credit-based usage system
- Stripe Integration: Payment processing
- User Management: Authentication and user profiles
- Admin Panel: Manage pricing, backgrounds, and themes
Required environment variables:
DATABASE_URL=postgresql://username:password@host:port/database
PORT=5000
NODE_ENV=development
STRIPE_SECRET_KEY=your_stripe_secret_key (optional for development)
STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key (optional for development)The application uses the following main tables:
users- User accounts and profilestransactions- Coin transactionscoin_pricing- Coin package pricingmodule_pricing- Feature pricingbackgrounds- Available backgroundsthemes- Available themesprocessed_images- User's processed imagessessions- User sessions
- The project was migrated from Replit to run locally
- Cross-platform environment variable handling with
cross-env - TypeScript configuration for both frontend and backend
- Drizzle ORM for type-safe database operations
- Database Connection Issues: Ensure PostgreSQL is running and the
DATABASE_URLis correct - Port Already in Use: Change the
PORTin.envfile - TypeScript Errors: Run
npm run checkto verify types - Build Issues: Clear
node_modulesanddistfolders, then reinstall dependencies
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and type checking
- Submit a pull request