The challenge will contain a few core features most applications have. That includes basic MVC, exposing an API, CRM like features, and finally tests.
- Basic Laravel Auth: ability to log in as administrator
- Use database seeds to create first user with email admin@admin.com and password “password”
- CRUD functionality (Create / Read / Update / Delete) for two menu items: Companies and Employees.
- Companies DB table consists of these fields: Name (required), email, logo (minimum 100×100), website
- Employees DB table consists of these fields: First name (required), last name (required), Company (foreign key to Companies), email, phone
- Use database migrations to create those schemas above
- Store companies logos in storage/app/public folder and make them accessible from public
- Use basic Laravel resource controllers with default methods – index, create, store etc.
- Use Laravel’s validation function, using Request classes
- Use Laravel’s pagination for showing Companies/Employees list, 10 entries per page
- Expose and API to list all companies and employees
- Let your creativity run wild and add a feature not mentioned above that you think would be useful for the application
Name: Dipjyoti Biswas
Email: djbiswasbd@gmail.com
-
Create a bare clone of the repository. (This is temporary and will be removed so just do it wherever.)
git clone --bare https://github.com/FmTod/skill-assessment-company-management.git
-
Create a new repository on GitHub.
-
Mirror-push your bare clone to your new repository.
Replace <username> with your actual GitHub username in the url below.
Replace <repository> with the name of your new repository.cd skill-assessment-company-management.git git push --mirror https://github.com/<username>/<repository>.git
-
Delete the bare clone created in step 1.
cd .. rm -rf skill-assessment-company-management.git
-
You can now clone your repository, where you are going to be working, on your machine (in my case in the code folder).
cd ~/code git clone https://github.com/<username>/<repository>.git
-
Create a copy of the
.env.example
file as.env
cp .env.example .env
-
Install dependencies:
docker run --rm \ -u "$(id -u):$(id -g)" \ -v $(pwd):/var/www/html \ -w /var/www/html \ laravelsail/php81-composer:latest \ composer install --ignore-platform-reqs
-
Start the container (Sail):
./vendor/bin/sail up -d
-
Generate a new secret key:
./vendor/bin/sail key:generate
-
(IMPORTANT) Edit the README.md file and add your name and email.
+ Name: Dipjyoti Biswas <br/> + Email: djbiswasbd@gmail.com <br/>
-
(IMPORTANT) Submit your first commit with just the changes to the README.md file. Must be done before starting the assignment.
git add README.md git commit -m "Initial commit" git push
./vendor/bin/sail php --version
./vendor/bin/sail php script.php
./vendor/bin/sail composer require laravel/sanctum
./vendor/bin/sail artisan queue:work
./vendor/bin/sail node --version
./vendor/bin/sail npm run dev
If you wish, you may use Yarn instead of NPM:
./vendor/bin/sail yarn
./vendor/bin/sail test
./vendor/bin/sail test --group orders