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,
],