Skip to content

Repository files navigation

Dream2Fund

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.

🌟 Overview

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.

✨ Key Features

For Project Owners

  • 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

For Investors

  • 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

Admin Features

  • 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

πŸ› οΈ Technology Stack

Backend

  • 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

Frontend

  • 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

Third-Party Integrations

  • Stripe: Payment processing
  • Google Calendar API: Calendar and meeting scheduling
  • Google Meet: Video conferencing integration
  • Laravel Socialite: Social authentication

Additional Packages

  • DomPDF: PDF generation for contracts
  • Laravel Snappy: PDF generation using wkhtmltopdf
  • Spatie Laravel Google Calendar: Google Calendar integration
  • RealRashid SweetAlert: Alert notifications

πŸ“‹ Requirements

  • 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)

πŸš€ Installation

1. Clone the Repository

git clone https://github.com/AwadGorg/dream2fund.git
cd dream2fund

2. Install PHP Dependencies

composer install

3. Install Node Dependencies

npm install

4. Environment Configuration

cp .env.example .env
php artisan key:generate

5. Configure Environment Variables

Edit 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_uri

6. Database Setup

php artisan migrate
php artisan db:seed

7. Storage Link

php artisan storage:link

8. Build Frontend Assets

npm run build
# Or for development:
npm run dev

9. Start Development Server

php artisan serve

πŸ“ Project Structure

dream2fund/
β”œβ”€β”€ 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

πŸ—„οΈ Database Schema

Main Models

  • 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

πŸ” Authentication & Authorization

  • 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

πŸ’³ Payment Processing

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)

πŸ“… Google Calendar Integration

  • OAuth2 authentication with Google
  • Create calendar events
  • Generate Google Meet links for meetings
  • Schedule meetings between project owners and investors

πŸ“„ Contract Management

  • 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

🌐 Localization

The platform supports bilingual content:

  • Arabic: Primary language with RTL support
  • English: Secondary language
  • Language files located in resources/lang/

🎨 Frontend Features

  • 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

πŸ”§ Development

Running Tests

php artisan test

Code Style

./vendor/bin/pint

Clear Cache

php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan route:clear

πŸ“ API Routes

The application includes API routes for potential mobile app integration:

  • Located in routes/api.php
  • Protected with Laravel Sanctum

πŸš€ Deployment

Production Checklist

  1. Set APP_ENV=production and APP_DEBUG=false
  2. Generate optimized autoloader: composer install --optimize-autoloader --no-dev
  3. Cache configuration: php artisan config:cache
  4. Cache routes: php artisan route:cache
  5. Cache views: php artisan view:cache
  6. Build production assets: npm run build
  7. Set up queue workers for background jobs
  8. Configure cron jobs for scheduled tasks
  9. Set up SSL certificate
  10. Configure web server (Apache/Nginx)

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is open-sourced software licensed under the MIT license.

πŸ‘₯ Author

Awad Gorg

πŸ™ Acknowledgments

  • Laravel Framework
  • Laravel Jetstream
  • Tailwind CSS
  • All contributors and open-source packages used in this project

πŸ“ž Support

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages