Live Demo β’ Work in Progress β’ π Installation β’ Documentation β’ Contributing
Scoriet is a modern enterprise code generator that revolutionizes development workflows through intelligent templating and automation. Built as a complete rewrite of the original WinDev application, it now leverages cutting-edge web technologies to provide a seamless, browser-based development experience.
- ποΈ Advanced SQL Parser - Parse MySQL schemas with intelligent relationship detection
- π― Template Engine - Powerful client-side template execution with JavaScript integration
- π₯οΈ Modern MDI Interface - Professional dock-based UI with floating panels
- π Enterprise Security - Laravel Passport OAuth2 with Password Grant authentication
- π€ User Management - Complete registration, login, and profile management system
- π JWT Token Authentication - Secure API access with Bearer tokens
- β‘ Real-time Generation - Instant code generation without server processing
- π§ Flexible Templates - Stack multiple templates for complex application scaffolding
Frontend Stack:
- React 19 with TypeScript
- RC Dock for MDI interface
- Tailwind CSS 4.0 for styling
- Ant Design Icons
- Vite for lightning-fast builds
Backend Stack:
- Laravel 12 with PHP 8.2+
- Inertia.js for seamless SPA experience
- Laravel Passport for API security
- Multi-database support (MySQL, PostgreSQL, SQLite, SQL Server)
Template System:
- Client-side JavaScript execution
- Flexible placeholder system (
{projectname}
,{tablename}
) - Advanced loop constructs (
{for %}{endfor}
) - Stackable template composition
- PHP β₯ 8.2 with extensions:
mbstring
,xml
,bcmath
,pdo
,tokenizer
- Composer β₯ 2.0
- Node.js β₯ 18.0 & npm β₯ 9.0
- Database: MySQL 8.0+ / PostgreSQL 13+ / SQLite 3.8+ / SQL Server 2019+
- Memory: 512MB RAM minimum (2GB+ recommended)
π For detailed Windows installation instructions, see INSTALLATION.md
# Clone the repository
git clone https://github.com/harveyhase68/scoriet.git
cd scoriet
# Install dependencies
composer install
npm install
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate
# Configure your database in .env
# Edit the following variables:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=scoriet
DB_USERNAME=your_username
DB_PASSWORD=your_password
# Create database (MySQL example)
mysql -u root -p -e "CREATE DATABASE scoriet CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# Run migrations
php artisan migrate
# (Optional) Seed sample data
php artisan db:seed
# Install Laravel Passport for API authentication
php artisan passport:install
# Create OAuth clients for authentication
php artisan passport:client --password --name="Scoriet Password Grant Client"
php artisan passport:client --personal --name="Scoriet Personal Access Client"
# Update .env with the Password Grant Client credentials
# VITE_PASSPORT_CLIENT_ID=your-password-grant-client-id
# VITE_PASSPORT_CLIENT_SECRET=your-password-grant-client-secret
# π All-in-one development server (recommended)
# Runs Laravel server + queue worker + Vite dev server
composer run dev
# π₯ With Server-Side Rendering
composer run dev:ssr
# βοΈ Manual start (for debugging)
php artisan serve --host=10.0.0.8 --port=8000 # Backend
php artisan queue:listen --tries=1 # Queue worker
npm run dev # Frontend
- Application: http://10.0.0.8:8000
- Vite Dev Server: http://10.0.0.8:5173
- Hot Module Replacement: Enabled automatically
Scoriet includes a complete authentication system with OAuth2 Password Grant:
- Registration: Create new user accounts with email verification
- Login: Secure OAuth2 authentication with JWT tokens
- Profile Management: Update user details and change passwords
- Token Management: Automatic token refresh and secure storage
# Example: Login via OAuth2 Password Grant
curl -X POST http://10.0.0.8:8000/api/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "password",
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"username": "user@example.com",
"password": "userpassword"
}'
# Example: Access protected routes
curl -X GET http://10.0.0.8:8000/api/user \
-H "Authorization: Bearer your-access-token"
POST /api/auth/register
- User registrationPOST /api/oauth/token
- OAuth2 token exchangeGET /api/user
- Get authenticated userPUT /api/profile/update
- Update user profilePUT /api/profile/password
- Change passwordPOST /api/auth/forgot-password
- Password reset requestPOST /api/auth/reset-password
- Password reset confirmation
- β‘ Hot Reload - Instant UI updates
- π Debug Toolbar - Laravel Debugbar (when enabled)
- π Logging - Real-time logs with
php artisan pail
- π¨ Live Styling - Tailwind CSS with JIT compilation
# Run all tests with Pest PHP
composer run test
# Alternative command
php artisan test
# Run specific test suites
php artisan test --testsuite=Feature
php artisan test --testsuite=Unit
# Run tests with coverage
php artisan test --coverage
# Run tests in parallel (faster)
php artisan test --parallel
- Feature Tests:
tests/Feature/
- End-to-end functionality - Unit Tests:
tests/Unit/
- Individual component testing - Browser Tests: Coming soon with Laravel Dusk
# Build for production
npm run build
# Build with Server-Side Rendering
npm run build:ssr
# Optimize Laravel
php artisan optimize
php artisan config:cache
php artisan route:cache
php artisan view:cache
- Set
APP_ENV=production
in.env
- Set
APP_DEBUG=false
in.env
- Configure production database
- Set up proper
APP_URL
- Configure mail settings
- Set up SSL certificate
- Configure proper file permissions
- Set up backup strategy
- Configure monitoring (logs, errors)
# Web server configuration
# Point document root to /public
# Enable mod_rewrite (Apache) or try_files (Nginx)
# File permissions
chmod -R 755 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
# π¨ Code formatting with Prettier
npm run format # Format all files
npm run format:check # Check formatting without changes
# π Linting with ESLint
npm run lint # Lint and auto-fix issues
# π TypeScript validation
npm run types # Type checking without compilation
# π¨ PHP Code formatting with Laravel Pint
./vendor/bin/pint
# π Static analysis with PHPStan (if configured)
./vendor/bin/phpstan analyse
# π Code style checking
php artisan pint --test
# Pre-commit hooks (recommended setup)
npm install --save-dev husky lint-staged
npx husky init
# Add to package.json:
# "lint-staged": {
# "*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"],
# "*.php": ["./vendor/bin/pint"]
# }
# Fix Laravel permissions
chmod -R 755 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache # Linux/Mac
# Windows (run as Administrator)
icacls storage /grant Users:F /T
icacls bootstrap/cache /grant Users:F /T
# Clear and reinstall Node dependencies
rm -rf node_modules package-lock.json
npm install
# Clear and reinstall Composer dependencies
rm -rf vendor composer.lock
composer install
# Regenerate autoload files
composer dump-autoload
# Clear all Laravel caches
php artisan optimize:clear
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
# Reset database
php artisan migrate:fresh --seed
# Check database connection
php artisan tinker
# In tinker: DB::connection()->getPdo();
# Clear Vite cache
rm -rf node_modules/.vite
npm run dev
# Rebuild assets
npm run build
- π Documentation: Check the
/docs
folder (coming soon) - π Bug Reports: Create an issue
- π¬ Discussions: GitHub Discussions
- π§ Email: Contact us
scoriet/
βββ app/
β βββ Http/Controllers/ # Laravel controllers
β βββ Models/ # Eloquent models
β βββ Services/ # Business logic (SQL Parser, etc.)
βββ resources/
β βββ js/
β β βββ Components/ # React components
β β βββ pages/ # Inertia.js pages
β β βββ types/ # TypeScript definitions
β βββ css/ # Stylesheets
βββ routes/ # Laravel routes
βββ tests/ # Test files
βββ database/ # Migrations, seeders, factories
- Laravel 12 - PHP framework
- React 19 - UI library
- Inertia.js - Modern monolith bridge
- TypeScript - Type safety
- Tailwind CSS - Utility-first CSS
- RC Dock - Docking layout system
- Vite - Build tool and dev server
- Pest PHP - Testing framework
Coming soon - comprehensive API documentation with examples.
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Run tests:
composer run test
- Run quality checks:
npm run lint && npm run types
- Commit changes:
git commit -m 'Add amazing feature'
- Push to branch:
git push origin feature/amazing-feature
- Create a Pull Request
- PHP: Follow PSR-12 standards, use Laravel Pint
- JavaScript/TypeScript: Use ESLint + Prettier configuration
- Commits: Use conventional commit format
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with the assistance of Claude, ChatGPT, Gemini, and Builder.io AI
- Inspired by the original WinDev implementation
- Thanks to the Laravel and React communities
β Star this project if you find it helpful!
Made with β€οΈ for the developer community