Skip to content

eriker75/laraquote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spanish / Español

Quotes App

Skill Assessment

The challenge will contain a few core features most applications have. That includes connecting to an API, basic MVC, exposing an API, and finally tests.

Important

Create the frontend in the same project/repo as the backend

The API we want you to connect to is https://quotes.rest/

The application should have the following features:

  • User authentication and profile update page
  • A page that shows 5 random quotes
    • There should be a button to refresh the quotes
    • There should be a button besides each quote to save it to your favorites
  • A page that shows your saved favorites
    • There should be a button to delete a quote from your favorites
  • Implement rate limiting for API requests to https://quotes.rest/ preventing abuse.
    • The API should be limited to 30 requests per minutes
  • Separate admin authentication for moderating saved user quotes and banning users
  • Frontend should be done with Vue.js and optionally Inertia.js
    • Typescript should be used for any frontend functionality
    • UI should be responsive
  • An API route should be available to fetch a specified number of quotes random quotes
  • An API route should be available to fetch your favorites quotes
  • An API route should be available to delete a quote from your favorites
  • All API route should be secured with an user token
  • Above features are to be tested with Feature tests

Extra Credit

  • Use composition API and setup script for Vue components

Developer

Name: Eribert Marquez
Email: [email protected]
Github: eriker75

Instructions

DO NOT START A NEW LARAVEL APP, USE THIS BOILERPLATE INSTEAD !!

Cloning the repository

  1. 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-quotes.git
  2. Create a new repository on GitHub.

  3. 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-quotes.git
    git push --mirror https://github.com/<username>/<repository>.git
  4. Delete the bare clone created in step 1.

    cd ..
    rm -rf skill-assessment-quotes.git
  5. 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

Getting Started

  1. Create a copy of the .env.example file as .env

    cp .env.example .env
  2. Install dependencies:

a. Docker (Recommended)
  1. Install composer dependecies

    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
  2. Start the container (Sail):

    ./vendor/bin/sail up -d
  3. Generate a new secret key:

    ./vendor/bin/sail artisan key:generate
b. Without Docker (Not recommended)
  1. Install all required dependencies

    composer install
  2. Generate a new secret key:

    php artisan key:generate

‼️ Note: Docker is recommended as you have all the external dependecies needed are already present in the provided container. Without docker you may need to install some external dependencies like MySQL or some extra PHP extensions required by the project

Your first commit (IMPORTANT)

  1. Edit the README.md file and add your name and email.

    - Name: `<your name>` <br/>
    - Email: `<your email>` <br/>
    + Name: Jhon Doe <br/>
    + Email: [email protected] <br/>
  2. 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

Executing Commands

Docker/Sail

PHP Commands

./vendor/bin/sail php --version
 
./vendor/bin/sail php script.php

Composer Commands

./vendor/bin/sail composer require laravel/sanctum

Artisan Commands

./vendor/bin/sail artisan queue:work

Node / NPM Commands

./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

Running Tests

./vendor/bin/sail test

./vendor/bin/sail test --group orders
Without Docker

Artisan Commands

php artisan serve
php artisan list

Node / NPM Commands

npm run dev
// or
npm run build

Running Tests

composer test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •