A modern digital marketplace for PDF books built with Laravel. Purchase, download, and manage your digital books seamlessly.
- Home Page with customer satisfaction highlights
- Dynamic Admin-configurable menus (Home, Products, FAQ, About Us)
- 8 Best-selling products showcase
- Categories section with product counts
- Advanced search functionality across products
- Footer with site information
- Shopping Cart (requires authentication)
- Duplicate purchase prevention for owned products
- Discount code system
- Wallet system with partial payments
- User Dashboard with:
- Order history
- Purchased file downloads
- Ticket submission
- Profile management
- Password change
- Wallet recharge
- Dashboard with:
- Sales analytics
- Revenue tracking
- Sales charts
- Management Sections:
- Products management
- File management
- Categories
- Tags
- Discount codes
- Comments moderation
- Menu settings
- Payments
- Tickets
- FAQ management
- Three Login Methods:
- Email & Password
- 6-digit code via Email
- 6-digit code via SMS
- ZarinPal integration for secure payments
- Automated purchase confirmation emails
- PHP 8.0+
- Composer
- MySQL 5.7+
- Node.js & NPM
- Clone the repository
git clone https://github.com/yourusername/filestore.git
cd filestore- Install PHP dependencies
composer install- Install Node.js dependencies
npm install- Build frontend assets
npm run build- Environment Setup
cp .env.example .env- Configure Environment Variables
Edit
.envfile with your configuration:
# Basic App Configuration
APP_NAME=FileStore
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
# Database Configuration
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=filestore
DB_USERNAME=your_username
DB_PASSWORD=your_password
# Email Configuration (Must be configured by user)
MAIL_MAILER=smtp
MAIL_HOST=your_smtp_host
MAIL_PORT=your_smtp_port
MAIL_USERNAME=your_smtp_username
MAIL_PASSWORD=your_smtp_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=[email protected]
MAIL_FROM_NAME="FileStore"
# SMS Configuration (Kaveh Negar)
KAVEHNEGAR_API_KEY=your_kavehnegar_api_key
KAVEHNEGAR_SENDER=your_sender_number
# Payment Gateway (ZarinPal)
ZARINPAL_MERCHANT_ID=your_zarinpal_merchant_id
ZARINPAL_SANDBOX=true
# File Upload Configuration
FILESYSTEM_DISK=public
MAX_FILE_SIZE=30720
ALLOWED_FILE_TYPES=pdf- Generate application key
php artisan key:generate- Run database setup
php artisan migrate --seed- Create storage link
php artisan storage:link- Start development server
composer run devMain landing page with customer satisfaction section, best-selling products, and categories
Product catalog with advanced search and category filtering
Category page showing product count and filtered results
User panel => wallet management
Administrative dashboard with analytics and management sections
Shopping cart with discount codes and wallet integration
users- User accounts and profilesproducts- PDF book productscategories- Product categoriesorders- Purchase recordsorder_items- Individual order itemswallets- User wallet balancesdiscount_codes- Promotional codestickets- Support ticketsfaqs- Frequently asked questionsmenus- Dynamic menu managementpayments- Payment transactionscomments- User comments and reviews
You must configure your email service in .env:
MAIL_MAILER=smtp
MAIL_HOST=your_smtp_host
MAIL_PORT=your_smtp_port
MAIL_USERNAME=your_smtp_username
MAIL_PASSWORD=your_smtp_password
MAIL_ENCRYPTION=tls- Register at Kaveh Negar
- Get your API key from dashboard
- Configure in
.env:
KAVEHNEGAR_API_KEY=your_api_key_here
KAVEHNEGAR_SENDER=your_sender_number- Register at ZarinPal
- Get your Merchant ID
- Configure in
.env:
ZARINPAL_MERCHANT_ID=your_zarinpal_merchant_idAdmins can upload files up to 30MB:
MAX_FILE_SIZE=30720
ALLOWED_FILE_TYPES=pdf- Environment Setup
cp .env.example .env
# Update production values in .env- Optimize Application
php artisan config:cache
php artisan route:cache
php artisan view:cache- Set proper permissions
chmod -R 755 storage
chmod -R 755 bootstrap/cacheFile upload fails:
- Check
upload_max_filesizein php.ini (should be at least 30M) - Verify storage permissions
- Ensure allowed file types in config
Email not sending:
- Verify SMTP credentials in
.env - Check spam folder
- Test with Mailtrap first
SMS not working:
- Verify Kaveh Negar API key
- Check account balance
- Validate sender number
Payment issues:
- Verify ZarinPal Merchant ID
- Check callback URLs
- Ensure SSL certificate for production
Login issues:
- Check email/SMS configuration
- Verify database connections
- Check session configuration
| Arash Ebrahimian | Amir Hossein Hosseinzade |
|---|---|
![]() |
![]() |
| Lead Developer & Project Architect | Co-developer & Template Specialist |
- Kaveh Negar for SMS service
- ZarinPal for payment gateway
For support, email [email protected] .







