GithubHelp home page GithubHelp logo

technical-test-vitruve's Introduction

Firas

  • Vitruve technical interview

  • Note: for creating custom pokemon i limited the image to 1mb, instead of having to look for an image, here is an example image you can use Pokémon_Pikachu_art.png

Install dependencies

  • While inside the main dir (technical-test-vitruve) run npm install it will install the dependencies for both ui and api.
npm install

Run both client and server concurrently

  • While inside the main dir (technical-test-vitruve)
npm run dev
  • This will run both the API and the UI at the same time

Run the client on its own

cd ui && npm run dev

Run the API on its own

cd api && npm run dev

Feedback

  • Extra features

    1. Incremental loading (loading the needed pokemon as they come into view), this makes the initial load much faster since you only need to load the pokemon that the user sees.

    2. Infinite scroll (which is a type of pagination, except we load next page automatically) no need to click a button that says "Next page"

    3. Filter pokemon through type.

  • App works offline (only thing that doesnt work are images) since we get them from githuhb's cdn, its possible to have the browser cache the cdn images with service workers but thats a bit overkill for this test.

  • Some things could be done more "efficient" for example the pokemon search function, if we cache the entire index on the client, but i choose to have the index on the server and search through http requests , because that is a more accurate presentation of a real world app (doesnt really make sense to store the entire search index on the client [load times would be horrible] )

  • For data persistance i choose to go with the indexed db, since the local storage only allows for 5MB (10MB if you use utf-16) and the indexed db doesnt have that limitation, Plus all modern browsers support the indexed db.

    • alt text
  • Authorization:

    • In a real world sennario we would also have an expiary date for the access token, and when it expires we would force the user to login, but for this test that is not needed.
    • We would Also use JWT probaby because that is becoming the standad

technical-test-vitruve's People

Contributors

hosfad avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.