Laravel Website
  • PHP 68.3%
  • Blade 24.9%
  • JavaScript 3.7%
  • CSS 1.7%
  • Dockerfile 0.6%
  • Other 0.8%
Find a file
2026-03-04 14:43:57 +04:00
.opencode refactor: improve blade agents 2026-01-30 16:01:10 +04:00
app refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
bootstrap refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
branding docs: add branding 2026-01-31 10:03:41 +04:00
config feat: add user management 2026-02-04 19:51:47 +04:00
database feat: improve performance of members 2026-02-05 19:49:44 +04:00
docker refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
kubernetes refactor: refactor components 2026-02-05 11:41:27 +04:00
operations feat: add roles and permissions 2026-02-04 02:42:15 +04:00
public feat: initial commit 2026-01-28 18:04:32 +04:00
resources refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
routes refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
scripts/utils fix: improve speed on desktop using webp and other stuff and migrate dockerfile to support gd 2026-02-01 20:47:19 +04:00
storage chore: herd and debugbar folder 2026-01-29 12:05:15 +04:00
tests refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
.dockerignore feat: add filament 2026-02-04 01:17:01 +04:00
.editorconfig feat: initial commit 2026-01-28 18:04:32 +04:00
.env.example chore: hard code values 2026-01-30 23:32:27 +04:00
.gitattributes refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
.gitignore feat: add rsvp management and replace custom image management with spatie library 2026-02-04 18:40:56 +04:00
.prettierrc chore: add blade formatter 2026-01-30 13:24:37 +04:00
AGENTS.md feat: login and terms 2026-01-30 17:33:04 +04:00
artisan feat: initial commit 2026-01-28 18:04:32 +04:00
boost.json refactor: use queries with homepage 2026-01-30 00:18:00 +04:00
composer.json feat: add rsvp management and replace custom image management with spatie library 2026-02-04 18:40:56 +04:00
composer.lock feat: add rsvp management and replace custom image management with spatie library 2026-02-04 18:40:56 +04:00
Dockerfile refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
Dockerfile.frankenphp refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
herd.yml chore: herd and debugbar folder 2026-01-29 12:05:15 +04:00
opencode.json feat: initial commit 2026-01-28 18:04:32 +04:00
package-lock.json feat: improve modal 2026-02-01 23:09:45 +04:00
package.json feat: improve modal 2026-02-01 23:09:45 +04:00
phpstan.neon feat: initial commit 2026-01-28 18:04:32 +04:00
phpunit.xml feat: add filament 2026-02-04 01:17:01 +04:00
pint.json feat: initial commit 2026-01-28 18:04:32 +04:00
README.md docs: improve readme 2026-02-03 12:22:50 +04:00
rector.php feat: initial commit 2026-01-28 18:04:32 +04:00
Taskfile.yaml refactor: refactor code and add more tests 2026-03-04 14:43:57 +04:00
vite.config.js feat: initial commit 2026-01-28 18:04:32 +04:00

Laravel Moris

header image

The official website for the Mauritius Laravel Meetup Community. Built with Laravel 12 and Tailwind CSS.

Laravel 12 PHP 8.4 Tailwind CSS 4

About

Laravel Moris is a community website for the Mauritius Laravel Meetup group. It helps members:

  • Discover events - Upcoming and past meetups with speakers and sponsors
  • RSVP to meetups - Track attendance with Going/Maybe/Not Going options
  • Submit talks - Call for papers with speaker information
  • Connect with members - Browse the community member directory
  • Meet sponsors - View sponsor logos and event history

Tech Stack

  • Framework: Laravel 12 (PHP 8.4)
  • Styling: Tailwind CSS v4
  • Database: SQLite (development) / PostgreSQL (production)
  • Testing: Pest 4
  • Authentication: Laravel Socialite (GitHub, Google OAuth) + Email/Password
  • Package Manager: Composer

Icons & Assets

Brand icons are sourced from coloured-icons by @dheereshag.

Icon files are stored in resources/images/logos/:

  • discord.svg - Discord community link
  • whatsapp.svg - WhatsApp community link
  • linkedin.svg - LinkedIn community link
  • github-light.svg - GitHub OAuth login button
  • google.svg - Google OAuth login button
  • youtube.svg - YouTube channel link
  • twitter.svg - X (Twitter) social link
  • bluesky.svg - Blue Sky social link
  • facebook.svg - Facebook community link

Icons are loaded using Laravel's Vite::asset() helper and styled with Tailwind CSS size-* classes.

Features

Community Management

  • Member profiles with avatar, title, and bio
  • Speaking history and attendance tracking
  • Event-based RSVP system with status tracking

Event System

  • Upcoming and past event listings
  • Event details with speakers, sponsors, and attendees
  • RSVP functionality for authenticated users
  • Paper submission for speaking opportunities

Sponsor Recognition

  • Sponsor directory with event counts
  • Individual sponsor profiles with history
  • Logo management with fallback support

Getting Started

Prerequisites

  • PHP 8.4+
  • Composer
  • Node.js & npm
  • Laravel Herd (recommended)

Note

Development Environment Options

New to PHP? Start here:

Option 1: php.new (Windows, Mac, Linux)

  • One-line command to install PHP 8.5, Composer, and Laravel
  • Fast setup for complete beginners
  • Visit php.new
  • After installation, use Compose for database/email (see below)

Option 2: Laravel Herd (macOS/Windows) - Free/Paid

  • All-in-one
  • Includes PHP, Nginx, databases*, and mail interface*
  • Free tier works great, uses SQLite by default. PostgreSQL available for production.
  • Download Herd

Know PHP but new to Laravel?

Option 3: Compose

  • Use your existing PHP installation
  • Provides PostgreSQL and Mailpit for email testing (TODO)
  • Run: docker compose up -d (TODO)

Experienced Laravel Developer?

Option 4: Laravel Valet (macOS)

Option 5: Valet+ (Linux)

  • Valet for Ubuntu/Debian users
  • Same lightweight approach as Valet with PostgreSQL included
  • Valet+ Documentation

Installation

  1. Fork & Clone the repository

    git clone https://github.com/yourusername/laravelmoris.com.git
    cd laravelmoris.com
    
  2. Install PHP dependencies

    composer install
    
  3. Install frontend dependencies

    npm install
    
  4. Configure environment

    cp .env.example .env
    php artisan key:generate
    
  5. Setup database

    # SQLite database is used by default (no additional setup needed)
    php artisan migrate
    php artisan db:seed --class=HomepageSeeder
    
  6. Start the development server

    composer dev
    

    Or with Laravel Herd, the site is automatically available at https://laravelmoris.com.test

    herd init
    

Testing

# Run all tests
php artisan test

# Run with coverage (requires Xdebug or PCOV)
php artisan test --coverage
# Or with herd
herd coverage vendor/bin/pest --coverage

Code Quality

# Format code
vendor/bin/pint --dirty

# Static analysis
vendor/bin/phpstan analyse

# Everything at once
composer lint:fix

Project Structure

app/
├── Actions/          # Business logic (Actions-first architecture)
│   ├── Auth/
│   ├── Event/
│   ├── Paper/
│   └── Profile/
├── Controllers/      # HTTP handlers
├── Data/            # Spatie Laravel Data DTOs
├── Enums/           # PHP enums
├── Http/
│   ├── Controllers/
│   └── Requests/
├── Models/          # Eloquent models
├── Queries/         # Data fetching queries
└── Providers/

Routes

Path Description
/ Home page with upcoming events
/events All events (upcoming & past)
/events/{id} Event details with RSVP
/members Community member directory
/members/{id} Member profile
/sponsors Sponsor directory
/sponsors/{id} Sponsor profile
/join Community links (Discord, WhatsApp, etc.)
/profile User profile (auth required)
/events/{id}/submit-paper Talk submission (auth required)
/about About us page with team info
/login Login page (OAuth + email/password)
/register Registration page
/terms Terms of Service page
/privacy-policy Privacy Policy page
/cookies Cookie Policy page

API

Laravel Moris exposes a RESTful API for programmatic access to meetup data.

Endpoints

Method Endpoint Description
GET /api/meetups List all meetups
GET /api/meetups/{event} Get a specific meetup

Database Schema

Core Tables

  • users - Community members
  • events - Meetup events
  • papers - Talk submissions
  • sponsors - Event sponsors
  • community_links - Discord, WhatsApp, etc.

Pivot Tables

  • event_user - User RSVPs with status (going/maybe/not_going)
  • event_sponsor - Event sponsorships
  • papers - Links users to events as speakers

Contributing

This is a community project. If you'd like to contribute:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and code quality tools
  5. Submit a pull request

License

MIT License - feel free to use this as a reference for your own Laravel projects.


Built with ❤️ for the Mauritius Laravel Community