Web Coding Challenge

Idea of the app

The task is to implement an app that lists shops.

Technologies to use

  • Backend : Django | Express | Laravel (your choice)

  • Frontend : VueJS

  • Frontend Styling : Bootstrap | Material Design (your choice)

  • Database : MySQL | PostgreSQL | MongoDB (your choice)

  • Git & Git Flow

  • Any additional libraries you want

Features

  • As an Administrator, I can promote other users to administrator
  • As an Administrator, I can load shops to the database, from an uploaded json file (shops.json provided).
  • As a User (or Administrator), I can sign up using my email & password
  • As a User (or Administrator), I can sign in using my email & password
  • As a User (or Administrator), I can display the list of shops
  • As a User, I can like a shop, so it can be added to my preferred shops
    • Acceptance criteria: liked shops shouldn’t be displayed on the main page
  • As a User, I can display the list of preferred shops
  • As a User, I can remove a shop from my preferred shops list

Mockups

(Note that the "dislike" button will be displayed but not actually do anything) Main Page - List of shops sorted by popularity (popularity is the number of users who "like" the shop)

My Preferred Shop page - List of my "liked" shops

(Note that the "make user" button will be displayed but not actually do anything. Also note the "Admin Settings" link is only shown to Administrators.) Admin Settings page - List of Administrators and Users

If a shop does not have an image, display the placeholder image shop-placeholder.png Shop Placeholder

Application Data

A json file with 100 shops is provided. Administrators should be able to import this data into your application back-end.

What we're looking for

  • Clean, modular code structure, programming best practices, legibility.
  • Clean git commit history with feature and release branches following git flow best practices
  • Documentation, or how do we get your code running on our machine?

Once you're done with the app

Put the code of your project on Github and send the URL to matt.gabrenya@gmail.com

Questions?

If you have any questions or feedback, don't hesitate to contact me at matt.gabrenya@gmail.com

Best Practices Resources

Git Flow

Django

Licensing

The image shop-placeholder.png is "Store" by Edward Boatman, from the Noun Project.