Dream2Fund is a comprehensive crowdfunding and investment platform built with Laravel that connects project owners with investors. The platform facilitates project funding through offers, contracts, payments, and communication tools.
Dream2Fund is a bilingual (Arabic/English) platform designed to bridge the gap between entrepreneurs seeking funding and investors looking for opportunities. The platform provides a complete ecosystem for project management, investment offers, contract generation, payment processing, and communication between parties.
- Project Management: Create, edit, and manage projects with detailed information
- Project Status Tracking: Track projects through various stages (idea, under construction, launched, funded, partnership)
- Offer Management: Receive, review, accept, or reject investment offers
- Contract Generation: Generate partnership contracts and NDAs (Non-Disclosure Agreements)
- Payment Processing: Receive payments through Stripe integration
- Communication System: Direct messaging with investors
- Google Calendar Integration: Schedule meetings with investors via Google Meet
- Project Discovery: Browse and filter projects by category, status, and other criteria
- Investment Offers: Submit investment offers with amount and equity percentage
- Contract Review: Review and sign partnership contracts
- Payment Processing: Make secure payments through Stripe
- Profile Management: Create detailed investor profiles
- Communication: Direct messaging with project owners
- Dashboard: Comprehensive admin dashboard for managing the platform
- User Management: Manage users, projects, offers, and contracts
- Category Management: Create and manage project categories
- Settings Management: Configure platform settings
- Payment Tracking: Monitor all transactions
- Country Management: Manage country data for user profiles
- Laravel 10.x: PHP framework
- PHP 8.1+: Server-side language
- MySQL: Database management system
- Laravel Jetstream: Authentication and user management
- Laravel Fortify: Authentication backend
- Laravel Sanctum: API authentication
- Laravel Livewire 3.x: Dynamic frontend components
- Laravel Cashier: Subscription and payment management
- Laravel Telescope: Application debugging and monitoring
- Tailwind CSS 3.x: Utility-first CSS framework
- Vite 4.x: Build tool and development server
- JavaScript (ES6+): Client-side scripting
- CKEditor 4: Rich text editor
- Axios: HTTP client for API requests
- SweetAlert2: Beautiful alert dialogs
- Stripe: Payment processing
- Google Calendar API: Calendar and meeting scheduling
- Google Meet: Video conferencing integration
- Laravel Socialite: Social authentication
- DomPDF: PDF generation for contracts
- Laravel Snappy: PDF generation using wkhtmltopdf
- Spatie Laravel Google Calendar: Google Calendar integration
- RealRashid SweetAlert: Alert notifications
- PHP >= 8.1
- Composer
- Node.js >= 16.x and NPM
- MySQL >= 5.7 or MariaDB >= 10.3
- Web server (Apache/Nginx)
- SSL certificate (for production)
git clone https://github.com/AwadGorg/dream2fund.git
cd dream2fundcomposer installnpm installcp .env.example .env
php artisan key:generateEdit the .env file with your configuration:
APP_NAME=Dream2Fund
APP_ENV=local
APP_KEY=base64:...
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dream2fund
DB_USERNAME=your_username
DB_PASSWORD=your_password
STRIPE_KEY=your_stripe_key
STRIPE_SECRET=your_stripe_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=your_redirect_uriphp artisan migrate
php artisan db:seedphp artisan storage:linknpm run build
# Or for development:
npm run devphp artisan servedream2fund/
βββ app/
β βββ Actions/ # Fortify actions
β βββ Console/ # Artisan commands
β βββ Exceptions/ # Exception handlers
β βββ Http/
β β βββ Controllers/ # Application controllers
β β β βββ Admin/ # Admin controllers
β β β βββ Dashboard/ # Dashboard controllers
β β β βββ Site/ # Site controllers
β β βββ Middleware/ # Custom middleware
β β βββ Requests/ # Form requests
β βββ Models/ # Eloquent models
β βββ Notifications/ # Notification classes
β βββ Providers/ # Service providers
β βββ View/ # View components
βββ bootstrap/ # Bootstrap files
βββ config/ # Configuration files
βββ database/
β βββ factories/ # Model factories
β βββ migrations/ # Database migrations
β βββ seeders/ # Database seeders
βββ public/ # Public assets
βββ resources/
β βββ css/ # CSS files
β βββ js/ # JavaScript files
β βββ lang/ # Language files (Arabic/English)
β βββ markdown/ # Markdown files
β βββ views/ # Blade templates
βββ routes/ # Route definitions
βββ storage/ # Storage files
βββ tests/ # Test files
βββ vendor/ # Composer dependencies
- Users: User accounts (project owners, investors, admins)
- Projects: Project listings with details
- Categories: Project categories
- Offers: Investment offers from investors
- Contracts: Partnership contracts and NDAs
- Payments: Payment transactions
- Communications: Messages between users
- BookedDates: Meeting schedules
- Countries: Country data
- Settings: Platform settings
- Contacts: Contact form submissions
- Laravel Jetstream: Provides authentication scaffolding
- Laravel Fortify: Handles authentication backend
- Two-Factor Authentication: Available via Jetstream
- Role-Based Access: Super admin, project owner, investor roles
- Middleware Protection: Routes protected with authentication and role middleware
The platform integrates with Stripe for secure payment processing:
- One-time payments for investment offers
- Payment tracking and history
- Payment success/error handling
- Currency support (SAR - Saudi Riyal)
- OAuth2 authentication with Google
- Create calendar events
- Generate Google Meet links for meetings
- Schedule meetings between project owners and investors
- Partnership Contracts: Generate contracts between project owners and investors
- NDA Contracts: Non-disclosure agreements
- PDF Generation: Export contracts as PDFs using DomPDF
- Contract Status: Track contract status (pending, approved, cancelled, active)
- Print Functionality: Print contracts directly from the platform
The platform supports bilingual content:
- Arabic: Primary language with RTL support
- English: Secondary language
- Language files located in
resources/lang/
- Responsive Design: Mobile-first approach with Tailwind CSS
- Modern UI: Clean and intuitive user interface
- Real-time Updates: Livewire components for dynamic interactions
- Form Validation: Client and server-side validation
- Alert Notifications: SweetAlert2 for user feedback
- Project Filtering: Advanced filtering system for projects
php artisan test./vendor/bin/pintphp artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan route:clearThe application includes API routes for potential mobile app integration:
- Located in
routes/api.php - Protected with Laravel Sanctum
- Set
APP_ENV=productionandAPP_DEBUG=false - Generate optimized autoloader:
composer install --optimize-autoloader --no-dev - Cache configuration:
php artisan config:cache - Cache routes:
php artisan route:cache - Cache views:
php artisan view:cache - Build production assets:
npm run build - Set up queue workers for background jobs
- Configure cron jobs for scheduled tasks
- Set up SSL certificate
- Configure web server (Apache/Nginx)
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open-sourced software licensed under the MIT license.
Awad Gorg
- GitHub: @AwadGorg
- Laravel Framework
- Laravel Jetstream
- Tailwind CSS
- All contributors and open-source packages used in this project
For support, please open an issue in the GitHub repository or contact the project maintainer.
Note: This is an active development project. Some features may be in progress or subject to change.