# Stre@mline # This is the official repository for [Stre@mline](http://streamlinehealth.org/). ### How do I get set up? ### * **Summary of set up** * This [laravel](https://laravel.com/) application requires PHP 8+ and Composer for dependency management. * Visit [laravel documentation](https://laravel.com/docs/5.5) for updated laravel docs. * Install [Composer](https://getcomposer.org/download/). * Install the LAMP stack. * **Configuration** * Run `git clone ` and `cd` into its root directory. * **Dependencies** * Run `composer install` to update the dependencies. * **Database configuration** * Create the '.env' file (which is a copy of '.env.example') i.e. `cp .env.example .env` * Set the database details (database, username, password) * Run `php artisan key:generate` to generate a unique key for the application. * Be sure to create the database; the tables and initial data will be auto-created by the next command. * Run `php artisan migrate --seed` * Run `php artisan serve` to use the application on a local server. You will see a url in the command results. * You can preferably run the application as you would a website on your operating system of choice. * **How to run tests** * Locally, you can set up a .env.testing for doing tests if you want. * Run `phpunit` to run all tests in the application. * Run `phpunit tests/feature/ExampleTest.php` To test the file 'ExampleTest.php'. * Remotely, visit [pipelines]() to run all tests in the application. ### Managing Submodules ### * After pulling: * Run `git config user.name` and `git config user.password` to set credentials and avoid being bothered with password requests * Then run `git submodule update --init --recursive` to initialize the modules * Then run `git submodule foreach --recursive git checkout main` to reset each submodule to main * And finally `git submodule foreach --recursive git pull` to update the branch. You can use the two commands whenever you checkout to another branch * If you make any changes within the Modules folder, commit to each repo affected and then commit to the container repo * For more references, use the links below * [Initial Commit](https://initialcommit.com/blog/git-submodule) * [Github](https://gist.github.com/gitaarik/8735255) * [Bitbucket](https://www.atlassian.com/git/tutorials/git-submodule)