Skip to content

Commit

Permalink
v2.1 build
Browse files Browse the repository at this point in the history
  • Loading branch information
sfraysse committed Feb 20, 2024
1 parent 55d06ef commit 04b90fc
Show file tree
Hide file tree
Showing 123 changed files with 19,342 additions and 241 deletions.
53 changes: 3 additions & 50 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,59 +1,12 @@
APP_NAME=Laravel
APP_NAME="TRAX LRS"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
APP_URL=http://traxlrs21starter.test

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_DATABASE=traxlrs21_starter
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=mt1

VITE_APP_NAME="${APP_NAME}"
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ yarn-error.log
/.fleet
/.idea
/.vscode
/services/tim
/services/trax/framework
.env.testing
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "services/trax/framework"]
path = services/trax/framework
url = https://github.com/trax-project/trax2-framework.git
674 changes: 674 additions & 0 deletions LICENSE.txt

Large diffs are not rendered by default.

229 changes: 184 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,205 @@
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>
# TRAX LRS 2.1 - Starter Edition

<p align="center">
<a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
</p>

## About Laravel
## About TRAX LRS

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
TRAX LRS is an xAPI conformant Learning Record Store (LRS) built with Laravel.

- [Simple, fast routing engine](https://laravel.com/docs/routing).
- [Powerful dependency injection container](https://laravel.com/docs/container).
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
- [Robust background job processing](https://laravel.com/docs/queues).
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
It focuses on the core features of an LRS, and that's it!

Laravel is accessible, powerful, and provides tools required for large, robust applications.
We want to keep it simple and clean, and give you the freedom to build what you want around it.

## Learning Laravel
Fore further information, visit http://traxlrs.com

Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.

You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch.
## Sofware License & Copyright

If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
TRAX LRS **Starter Edition** is distributed under the [GNU-GPL3 license](https://www.gnu.org/licenses/gpl-3.0.fr.html).

## Laravel Sponsors
Copyright 2022-2024 Sébastien Fraysse, http://fraysse.eu, [email protected].

We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).

### Premium Partners
## Server Requirements

- **[Vehikl](https://vehikl.com/)**
- **[Tighten Co.](https://tighten.co)**
- **[WebReinvent](https://webreinvent.com/)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[64 Robots](https://64robots.com)**
- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
- **[Cyber-Duck](https://cyber-duck.co.uk)**
- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
- **[Jump24](https://jump24.co.uk)**
- **[Redberry](https://redberry.international/laravel/)**
- **[Active Logic](https://activelogic.com)**
- **[byte5](https://byte5.de)**
- **[OP.GG](https://op.gg)**
### Apache 2.4

## Contributing
- mod_rewrite

Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
### PHP 8.1 to 8.3

## Code of Conduct
Check that your PHP version and configuration is valid both for PHP Web & CLI.
The following extensions are required:

In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
- Ctype
- cURL
- DOM
- Fileinfo
- Filter
- Hash
- Mbstring
- OpenSSL
- PCRE
- PDO (PDO_MYSQL / PDO_PGSQL)
- Session
- Tokenizer
- XML

## Security Vulnerabilities
### Database

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [[email protected]](mailto:[email protected]). All security vulnerabilities will be promptly addressed.
- MySQL 5.7.7+
- MariaDB 10.10+
- PostgreSQL 12+

## License
### Utilities

- Git
- Composer 2


## Upgrade from TRAX LRS 2.0.x

In order to upgrade TRAX LRS from version 2.0.x, we recommend to install the last release of TRAX LRS
in a different location and then, to make a copy the `.env` file from your previous installation.


## Fresh install

### First Steps

Assuming that you want to install TRAX LRS in a folder named **traxlrs**:

```
git clone https://github.com/trax-project/trax2-starter-lrs traxlrs
cd traxlrs
composer install
```

### File Permissions

The folders `storage` and `bootstrap/cache` must be writable both by the webserver and the console user.
Assuming that the ownership has been properly set, you should be able to assign a `0775` permission
to the folders and subfolders and a `644` permission to the files.
Check this post for further details: https://laracasts.com/discuss/channels/laravel/proper-folder-permissions

If you are not sure how to configure this, you can use the following commands **FOR TESTING PURPOSE ONLY**.

```
chmod -R 777 bootstrap/cache
chmod -R 777 storage
```

### Web Server

For security reasons, only the `public` folder should be accessible by the web server.
Create a virtual host and configure the document root to `traxlrs/public`.


### Database

Create an empty database with the `utf8mb4_unicode_ci` encoding.
Then, at the root of the application folder, make a copy of the `.env.example` file,
rename it `.env` and enter your database settings.

*MySQL/MariaDB example:*

```ini
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=traxlrs
DB_USERNAME=root
DB_PASSWORD=
```

*PostgreSQL example:*

```ini
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=traxlrs
DB_USERNAME=postgres
DB_PASSWORD=aaaaaa
```

### App URL

In the `.env` file, you must set the public URL of your TRAX LRS application :

```ini
APP_URL=http://traxlrs.test
```

### Last Steps

```
php artisan key:generate
php artisan migrate
```


## Admin Account

You can now create an admin account with the following command.
This will give your credentials to log into the application.

```
php artisan admin:create
```

Additional commands are available to manage the admin accounts:

```powershell
php artisan admin:list
php artisan admin:update
php artisan admin:delete
```


## Production server

In the `.env` file, changes settings from:

```ini
APP_ENV=local
APP_DEBUG=true
```

To:

```ini
APP_ENV=production
APP_DEBUG=false
```

To optimize performances, you can run the following commands.

```powershell
php artisan config:cache
php artisan route:cache
```

The `php artisan config:cache` command must be ran again after each config change.



## Known issues

### SQLSTATE[42000]: Syntax error or access violation: 1071

If you get this error during the `php artisan migrate` command, check your version of MySQL or MariaDB.
Since TRAX LRS 2.0.2, MySQL versions older than 5.7.7 are not supported anymore.
MariaDB versions older than 10.3 are not supported.

### 404 error on the main page

TRAX LRS has a `/public/.htaccess` file with some Apache directives.
When these directives are ignored by Apache, this leads to a 404 error.
In this case, check the `httpd.conf` file of Apache and try to set the `AllowOverride` option to `All`:

```xml
<Directory "path/to/laravel/project/public">
Allowoverride All
</Directory>
```

The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
5 changes: 3 additions & 2 deletions app/Http/Kernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ class Kernel extends HttpKernel
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
// \App\Http\Middleware\TrustProxies::class,
// \Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\Trax\Auth\Middleware\CorsMiddleware::class,
];

/**
Expand Down
3 changes: 2 additions & 1 deletion app/Providers/AppServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
Expand All @@ -19,6 +20,6 @@ public function register(): void
*/
public function boot(): void
{
//
Schema::defaultStringLength(191);
}
}
13 changes: 8 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
{
"name": "laravel/laravel",
"name": "trax2/starter-lrs",
"type": "project",
"description": "The skeleton application for the Laravel framework.",
"keywords": ["laravel", "framework"],
"license": "MIT",
"description": "TRAX LRS. Starter Edition.",
"keywords": ["trax", "lrs", "xapi"],
"license": "GPL-3.0-or-later",
"require": {
"php": "^8.1",
"guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^10.10",
"laravel/sanctum": "^3.3",
"laravel/tinker": "^2.8"
"laravel/tinker": "^2.8",
"laravel/ui": "^4.4",
"trax2/framework": "2.0.4"
},
"require-dev": {
"fakerphp/faker": "^1.9.1",
Expand All @@ -23,6 +25,7 @@
"autoload": {
"psr-4": {
"App\\": "app/",
"Trax\\Lrs\\": "services/trax/lrs/src/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
Expand Down
Loading

0 comments on commit 04b90fc

Please sign in to comment.