Neon Bubble Quest Documentation

Comprehensive guides for setting up and deploying professional applications

Android Studio Setup

Complete guide to setting up Android Studio for Neon Bubble Quest – The Ultimate All-in-One Reward & Wallpaper Platform

View Guide

Laravel Admin Setup

Step-by-step instructions for configuring Laravel admin panels

View Guide

Deployment

Production deployment strategies and best practices

View Guide

Android Studio Setup Guide

1. System Requirements

Component Minimum Requirement Recommended
Operating System Windows 7/8/10 (64-bit) Windows 10 (64-bit)
RAM 8GB 16GB or more
Disk Space 4GB 8GB or more (SSD)
Java Development Kit JDK 8 Latest JDK version
Screen Resolution 1280 x 800 1920 x 1080 or higher

2. Installation Process

1

Download Android Studio

Visit the official Android Studio website and download the latest stable version for your operating system.

https://developer.android.com/studio
2

Run the Installer

Launch the downloaded installer and follow the installation wizard. Accept the license agreement and configure installation options.

Note: Make sure to install Android Studio in a path without spaces to avoid potential issues.

3

SDK Components Setup

After installation, Android Studio will guide you through the SDK components setup. Select the following components:

  • Android SDK
  • Android SDK Platform
  • Android Virtual Device
  • Performance (Intel HAXM)
4

Configure Environment Variables

Set up the necessary environment variables for Android development:

ANDROID_HOME=C:\Users\YourUsername\AppData\Local\Android\Sdk
PATH=%PATH%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

3. Project Configuration

Follow these steps to configure your Android project for Neon Bubble Quest development:

3.1 Gradle Configuration

Update your build.gradle file with the following Neon Bubble Quest configurations:

android {
    compileSdkVersion 36
    defaultConfig {
        applicationId "com.burhanstore.rewardpixel"
        minSdkVersion 24
        targetSdkVersion 36
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}

3.2 Code Quality Tools

Integrate essential code quality tools:

  • Checkstyle for code style enforcement
  • PMD for static code analysis
  • FindBugs for bug detection
apply plugin: 'checkstyle'
apply plugin: 'pmd'

checkstyle {
    toolVersion = "8.37"
    configFile = file("${rootDir}/config/checkstyle/checkstyle.xml")
}

pmd {
    toolVersion = "6.30.0"
    ruleSetFiles = files("${rootDir}/config/pmd/ruleset.xml")
}

4. Video Tutorial

Watch this comprehensive video guide for Android Studio setup and configuration:

Note: This video demonstrates the complete Android Studio setup process from installation to project configuration.

5. CI/CD Integration

Configure your Android project for continuous integration and deployment:

5.1 Jenkins Configuration

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh './gradlew clean assembleRelease'
            }
        }
        stage('Test') {
            steps {
                sh './gradlew test'
            }
        }
        stage('Deploy') {
            steps {
                sh './gradlew publishReleaseBundle'
            }
        }
    }
}

Laravel Admin Setup Guide

1. Prerequisites

Component Minimum Requirement Recommended
PHP Version PHP 7.4+ PHP 8.1+
Database MySQL 5.7+ MySQL 8.0+ or PostgreSQL 13+
Web Server Apache/Nginx Nginx with PHP-FPM
Composer Composer 2.0+ Latest version
Node.js Node.js 14+ Node.js 16+ and npm 8+

2. Laravel Installation

1

Install Laravel

Create a new Laravel project using Composer:

composer create-project laravel/laravel admin-project
2

Configure Environment

Set up your environment variables in the .env file:

APP_NAME="Neon Bubble Quest Admin"
APP_ENV=production
APP_KEY=base64:your-generated-key
APP_DEBUG=false
APP_URL=https://admin.yourdomain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=admin_db
DB_USERNAME=admin_user
DB_PASSWORD=secure_password

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
3

Database Migration

Set up your database tables:

php artisan migrate

Note: Make sure your database credentials are correctly set in the .env file before running migrations.

3. Admin Panel Installation

We'll use Laravel Admin (a popular admin panel package) for this setup:

1

Install Laravel Admin Package

composer require encore/laravel-admin
2

Publish Configuration

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
3

Install Admin

php artisan admin:install

This command will:

  • Create tables for admin users, roles, permissions, etc.
  • Create a default admin user (username: admin, password: admin)
  • Generate necessary assets and configurations

4. Video Tutorial

Watch this comprehensive video guide for Laravel Admin setup and configuration:

Note: This video demonstrates the complete Laravel Admin setup process from installation to customization.

5. Custom Admin Configuration

4.1 Create Admin Controllers

Generate admin controllers for your models:

php artisan admin:make UserController --model=App\\Models\\User

4.2 Define Admin Routes

Configure admin routes in routes/admin.php:

use App\Admin\Controllers\UserController;
use Encore\Admin\Facades\Admin;
use Illuminate\Routing\Router;

Admin::routes();

Route::group([
    'prefix'        => config('admin.route.prefix'),
    'namespace'     => config('admin.route.namespace'),
    'middleware'    => config('admin.route.middleware'),
    'as'            => config('admin.route.prefix') . '.',
], function (Router $router) {
    $router->get('/', 'HomeController@index')->name('home');
    $router->resource('users', UserController::class);
    // Add more resource routes here
});

4.3 Customize Admin Interface

Modify the config/admin.php file to customize your admin panel:

'title' => 'Neon Bubble Quest Admin Panel',
'logo' => 'Neon Bubble Quest Admin',
'logo-mini' => 'E',

'bootstrap' => app_path('Admin/bootstrap.php'),

'extensions' => [
    'media-manager' => [
        'enable' => true,
    ],
    'api-tester' => [
        'enable' => true,
    ],
]

5. Security Hardening

Implement these security measures for your admin panel:

5.1 Configure Admin Middleware

// In app/Http/Kernel.php
protected $middlewareGroups = [
    // ...
    'admin' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
        \App\Http\Middleware\AdminAuthentication::class,
        \App\Http\Middleware\AdminActivityLog::class,
    ],
];

5.2 Implement Two-Factor Authentication

Add 2FA to your admin panel for enhanced security:

composer require laravel/fortify
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"

Configure Fortify in config/fortify.php:

'features' => [
    Features::registration(),
    Features::resetPasswords(),
    Features::emailVerification(),
    Features::updateProfileInformation(),
    Features::updatePasswords(),
    Features::twoFactorAuthentication([
        'confirmPassword' => true,
    ]),
],

Deployment Guide

1. Production Environment Setup

Configure your production server with these recommended specifications:

Component Recommendation
Server Type Cloud VPS (AWS EC2, Google Cloud, DigitalOcean)
Operating System Ubuntu 20.04 LTS
Web Server Nginx with PHP-FPM
Database MySQL 8.0 or PostgreSQL 13
Cache Redis
SSL Let's Encrypt with auto-renewal

2. Deployment Pipeline

Implement a robust CI/CD pipeline for automated deployments:

1

Version Control

Use Git for version control with a branching strategy:

  • main: Production-ready code
  • develop: Integration branch
  • feature/*: Feature branches
  • hotfix/*: Emergency fixes
2

CI/CD Configuration

Set up GitHub Actions or GitLab CI with this configuration:

name: Deploy to Production

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.1'
          
      - name: Install Dependencies
        run: composer install --no-dev --optimize-autoloader
        
      - name: Compile Assets
        run: |
          npm install
          npm run production
          
      - name: Deploy to Server
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /var/www/production
            git pull origin main
            composer install --no-dev --optimize-autoloader
            php artisan migrate --force
            php artisan config:cache
            php artisan route:cache
            php artisan view:cache
            php artisan queue:restart

3. Performance Optimization

3.1 Laravel Optimization

Run these commands to optimize Laravel for production:

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize

3.2 Server Optimization

Configure Nginx with optimal settings:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;
    
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    
    root /var/www/yourdomain.com/public;
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }
    
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

4. Monitoring and Maintenance

4.1 Server Monitoring

Set up monitoring tools:

  • New Relic for application performance monitoring
  • Prometheus and Grafana for server metrics
  • ELK Stack (Elasticsearch, Logstash, Kibana) for log management

4.2 Backup Strategy

Implement automated backups:

# Create a backup script (backup.sh)
#!/bin/bash

# Variables
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_DIR="/var/backups/application"
DB_USER="db_user"
DB_PASS="db_password"
DB_NAME="application_db"
APP_DIR="/var/www/yourdomain.com"

# Create backup directory if it doesn't exist
mkdir -p $BACKUP_DIR

# Database backup
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_backup_$TIMESTAMP.sql.gz

# Application files backup
tar -czf $BACKUP_DIR/app_backup_$TIMESTAMP.tar.gz $APP_DIR

# Remove backups older than 30 days
find $BACKUP_DIR -type f -name "*.gz" -mtime +30 -delete

# Upload to offsite storage (e.g., AWS S3)
aws s3 sync $BACKUP_DIR s3://your-backup-bucket/

Add to crontab to run daily:

0 2 * * * /path/to/backup.sh >> /var/log/backup.log 2>&1

Development Best Practices

1. Code Quality Standards

1.1 PHP Coding Standards

Follow PSR-12 coding standards for PHP:

// Install PHP_CodeSniffer
composer require --dev squizlabs/php_codesniffer

// Add to composer.json
"scripts": {
    "phpcs": "phpcs --standard=PSR12 app/",
    "phpcbf": "phpcbf --standard=PSR12 app/"
}

1.2 Android Coding Standards

Follow Google's Android coding standards:

  • Use Kotlin for new code
  • Follow MVVM architecture pattern
  • Use Android Jetpack components
  • Implement dependency injection with Hilt

2. Testing Strategy

2.1 Laravel Testing

Implement comprehensive testing:

// Unit Tests
php artisan make:test UserServiceTest --unit

// Feature Tests
php artisan make:test UserRegistrationTest

// Run Tests
php artisan test

2.2 Android Testing

Implement multi-level testing for Android:

// Unit Tests with JUnit and Mockito
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:4.0.0'

// UI Tests with Espresso
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test:rules:1.4.0'

3. Security Best Practices

3.1 API Security

  • Use OAuth 2.0 with JWT for authentication
  • Implement rate limiting
  • Validate all input data
  • Use HTTPS for all communications
  • Implement proper CORS policies

3.2 Data Security

  • Encrypt sensitive data at rest
  • Use prepared statements for database queries
  • Implement proper access control
  • Regular security audits
  • Keep dependencies updated

Troubleshooting Guide

1. Common Laravel Issues

500 Server Error in Production

Symptoms: Application returns 500 error with no details in production.

Solution:

  1. Check Laravel logs at storage/logs/laravel.log
  2. Verify file permissions (storage and bootstrap/cache directories should be writable)
  3. Check server error logs (/var/log/nginx/error.log)
  4. Temporarily enable debugging by setting APP_DEBUG=true in .env

Database Connection Issues

Symptoms: SQLSTATE[HY000] [2002] Connection refused

Solution:

  1. Verify database credentials in .env file
  2. Check if database server is running
  3. Verify network connectivity to database server
  4. Check database user permissions

Cache Issues

Symptoms: Changes to configuration or routes not reflecting

Solution:

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
composer dump-autoload

2. Common Android Issues

Gradle Build Failures

Symptoms: Build fails with dependency or version conflicts

Solution:

  1. Sync Gradle files and update dependencies
  2. Check for version conflicts in build.gradle
  3. Try Gradle clean and rebuild:
./gradlew clean
./gradlew build
  • Check for Java version compatibility
  • Layout Performance Issues

    Symptoms: UI lag, slow rendering, or ANR (Application Not Responding)

    Solution:

    1. Use Android Profiler to identify bottlenecks
    2. Simplify complex layouts (prefer ConstraintLayout)
    3. Avoid nested layouts
    4. Use RecyclerView instead of ListView
    5. Implement view binding for faster access to views

    Memory Leaks

    Symptoms: OutOfMemoryError, increasing memory usage over time

    Solution:

    1. Use LeakCanary to detect memory leaks
    2. Avoid strong references to Activities or Fragments in async callbacks
    3. Use WeakReference for Context objects
    4. Properly dispose of resources (close cursors, streams, etc.)
    5. Unregister listeners and observers in onDestroy()