PalWeb-Online / PalWeb

the Web of Palestinian Arabic
5 stars 0 forks source link

PalWeb

Laravel Forge Site Deployment Status

ko-fi

Learn Palestinian Arabic is an educational project focusing on the documentation of the Palestinian dialects of Spoken Arabic. The Learn Palestinian Arabic website includes several features of both educational & linguistic value:

Learn Palestinian Arabic is an ambitious project; nothing with its scope exists for any variety of Levantine Arabic — possibly for any variety of Arabic. Once the project reaches more advanced stages, others are encouraged to create clones of the site for other languages & language varieties.

Environment Variables

To run this project, you will need to add the following environment variables to your .env file. These are used to access remote files in the s3 bucket.

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

AWS_DEFAULT_REGION

AWS_BUCKET

AWS_ENDPOINT

AWS_USE_PATH_STYLE_ENDPOINT

Run Locally

Clone the project

  git clone git@bitbucket.org:andrewfreddin/learnarabic.git

Go to the project directory

  cd learnarabic

Compose Up docker container

  docker compose up -d

Install dependencies

  composer install
  npm install

Migrate database fresh

  php artisan migrate:fresh

Source in database backup to sql docker container

  mysql -h mysql -P 3306 -u root -p
  mysql> use learnarabic;
  mysql> source arabic23may2023.sql;
  exit

Seed file table and upload any new audio files in /public/audio to s3 bucket

  php artisan audio:upload

Start the server

  npm run dev

Documentation

Below is a detailed explanation of custom defined php artisan commands

file:upload

  php artisan file:upload

file:upload will go through the audio directory and upload any files missing in the s3 bucket

file:link

  php artisan file:link

file:link will go through sentences, inflections, and pronunciations, and create a database entry on the file table for each one of them

file:migrate

  php artisan file:migrate

file:migrate will call both file:upload and file:link

file:upload --force and file:migrate --force

  php artisan file:upload --force
  php artisan file:migrate --force

file:upload --force and file:migrate --force will upload files to the s3 bucket in forced mode, doing so will not check if a file already exists in the bucket, instead it will upload the file no matter what, if a file being uploaded already exists, then it will overwrite the existing file in the s3 bucket

Contributing

Thank you for considering contributing to the Learn Palestinian Arabic project! There are several ways to contribute: