Skip to content

Instantly share code, notes, and snippets.

@michaelbunch
Last active May 29, 2018 21:01
Show Gist options
  • Save michaelbunch/924e938e5eccc56cbd3f900e8461ff56 to your computer and use it in GitHub Desktop.
Save michaelbunch/924e938e5eccc56cbd3f900e8461ff56 to your computer and use it in GitHub Desktop.
Interview Development Task

Interview Development Task

Task

Your users would like a service for sharing bookmarks with one other. The service should have authentication to keep the bookmarks private to only registered users. Once authenticated all bookmarks are visible by all users. A user can post a new bookmark for all to see, but only that user can edit or delete the bookmark. All users like the to see the bookmarks in alphabetical order by title. New users can join the service via a public registration page.

Estimated time to complete: 3 - 4 hours

Requirements

The following requirements should follow Laravel best practices and should not be developed beyond the basic scope of the project. Before writing any code be sure to read the Laravel documentation related to the feature carefully. Laravel simplifies many things for you.

The user interface should be as simple as possible. The use of CSS is up to the developer and is not part of the evaluation. If you wish to use a UI library make sure it is included in the templates via CDN.

Do not use any PHP packages/libraries except for what Laravel includes during installation.

Authentication

  • Standard, out-of-the-box Laravel authentication

Bookmark Fields

  • Title (string)
  • URL (string)
  • User ID for linking bookmark to a user
  • Auto-increment field for ID
  • Timestamp fields for Created At and Updated At

Pages

  • Authentication
    • Login page
    • Registration page
  • Bookmarks
    • Index page for listing all bookmarks ascending by Title
      • Table that includes ID, Title, URL, User, Created At, Updated At
    • Create page for adding bookmarks
    • Update page for editing bookmarks
      • Only Title and URL should be editable
    • Delete confirmation page for removing bookmarks
      • Only the user that created the bookmark can delete it

Please use the following in the project

  • Form Validation (Title and URL are required fields)
  • Form protection (CSRF)
  • Database Migrations (Seeders helpful but not required)
  • Blade templates
  • PSR-2 formatting
  • Use Composer

Submission Instructions

  • Create public Github repository titled user-bookmarking-platform
  • Add user michaelbunch as a collaborator to the repository
  • Post all code to the repo
  • Feel free to ask questions via the Issues section by assigning the question to michaelbunch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment