Introduction

Gamification platform (badges and levels) based on Laravel

1. Introduction

1.1. Overview of the application

1.2. Key features

1.3. Requirements

2. Installation

Laravel Sail is a lightweight CLI tool for managing Laravel’s default Docker-based development environment. It sets up multiple containers, including an application server and a database server, to meet the application’s requirements.

  1. Clone the repository locally

     git clone https://github.com/pacoorozco/gamify-laravel.git gamify
     cd gamify
    
  2. Copy .env.example to .env.

    NOTE: You don’t need to touch anything from this file. It works with default settings.

  3. Install PHP dependencies with:

    NOTE: You don’t need to install neither PHP nor Composer, we are going to use a Composer image instead.

     docker run --rm \                  
     -u "$(id -u):$(id -g)" \
     -v $(pwd):/var/www/html \
     -w /var/www/html \
     laravelsail/php82-composer:latest \
     composer install --ignore-platform-reqs
    
  4. Start all containers with the sail command.

     ./vendor/bin/sail up -d
    
  5. Seed database in order to play with some data

     php artisan key:generate 
     php artisan migrate --seed
    

    If you are using Sail, you should execute those commands using Sail:

    # Running Artisan commands within Laravel Sail...
    sail artisan key:generate 
    sail artisan migrate --seed
    
  6. Point your browser to http://localhost. Enjoy!

    NOTE: Default credentials are admin@domain.local/admin or player@domain.local/player

3. Getting Started

This setup allows you to customize the platform to suit your needs while providing a starting point for immediate use.

4. User Management

In the context of the gamify platform, a User represents an individual who interacts with the system. Users can have different roles that define their permissions and access levels within the platform. The two primary roles are:

Player

Admin

5. Gamification Features

5.1. Experience Points (XP)

5.2. Badges

5.3. Levels

5.4. Questions

6. Customization

gamify provides extensive customization options to tailor the platform to your specific needs. From managing gamification elements like badges, levels, and questions to modifying the application’s appearance, you have full control over the platform.

6.1. Managing Badges, Levels, and Questions

These features can be accessed and configured directly through the Admin Dashboard, providing a user-friendly interface for customization.

6.2. Customizing Application Pages

This approach allows you to personalize the platform’s design and layout while leveraging the flexibility of Laravel’s Blade templating engine.