Skip to main content

Configuration

Configure Smart Academic Hub for your environment.

Backend Configuration

Environment Variables

Edit backend/.env:

# Application
APP_NAME="Smart Academic Hub"
APP_ENV=local
APP_KEY=base64:...
APP_DEBUG=true
APP_URL=http://localhost:5000

# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=smart_academic_hub
DB_USERNAME=root
DB_PASSWORD=

# Cache & Session
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

# Redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

# Mail
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=noreply@smartacademichub.com
MAIL_FROM_NAME="${APP_NAME}"

# AWS (for file storage)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

# Sanctum
SANCTUM_STATEFUL_DOMAINS=localhost,localhost:5001,127.0.0.1
SESSION_DOMAIN=localhost

# Swagger
L5_SWAGGER_CONST_HOST=http://localhost:5000

Database Setup

# Create database
mysql -u root -p
CREATE DATABASE smart_academic_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# Run migrations
cd backend
php artisan migrate
php artisan install:api

Cache & Queue

# Clear caches
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

# Run queue worker
php artisan queue:work

# Schedule runner (in production, use cron)
php artisan schedule:work

Frontend Configuration

Environment Variables

Create frontend/.env.local:

VITE_API_URL=http://localhost:5000/api/v1
VITE_APP_NAME=Smart Academic Hub
VITE_APP_ENV=development

Vite Configuration

Edit frontend/vite.config.ts:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'

export default defineConfig({
plugins: [react()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
server: {
port: 5001,
proxy: {
'/api': {
target: 'http://localhost:5000',
changeOrigin: true,
},
},
},
})

Mobile Configuration

Environment Variables

Create mobile/.env:

EXPO_PUBLIC_API_URL=http://localhost:5000/api/v1
EXPO_PUBLIC_APP_NAME=Smart Academic Hub

App Configuration

Edit mobile/app.json:

{
"expo": {
"name": "Smart Academic Hub",
"slug": "smart-academic-hub",
"version": "1.1.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "automatic",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.smartacademichub.app"
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "com.smartacademichub.app"
}
}
}

Documentation Configuration

Docusaurus Config

Edit documentation/docusaurus.config.js:

url: 'https://docs.smartacademichub.com',
baseUrl: '/',
organizationName: 'smartacademichub',
projectName: 'SmartAcademicHub',

Production Configuration

Backend Production

APP_ENV=production
APP_DEBUG=false
APP_URL=https://smartacademichub.com

DB_HOST=your-production-db-host
DB_DATABASE=smart_academic_hub_prod

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

SANCTUM_STATEFUL_DOMAINS=smartacademichub.com

Frontend Production

VITE_API_URL=https://smartacademichub.com/api/v1
VITE_APP_ENV=production

Mobile Production

EXPO_PUBLIC_API_URL=https://smartacademichub.com/api/v1

Security

CORS Configuration

Edit backend/config/cors.php:

'paths' => ['api/*', 'sanctum/csrf-cookie'],
'allowed_origins' => [
'https://smartacademichub.com',
'http://localhost:5001',
],
'supports_credentials' => true,

Rate Limiting

Edit backend/app/Http/Kernel.php:

'api' => [
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],

Next Steps