Skip to content

Instantly share code, notes, and snippets.

@dphurley
Last active May 23, 2018 17:36
Show Gist options
  • Save dphurley/19cc7a52edd94cf22d099d9833f863ec to your computer and use it in GitHub Desktop.
Save dphurley/19cc7a52edd94cf22d099d9833f863ec to your computer and use it in GitHub Desktop.

Overview

New York City Search Engine - Killer Feature

The City of New York needs your help again!

Now that they have a new user management system, they want to promote their app further. The city is looking to a killer feature to their app that will attract new users.

They are requesting proposals for this new feature. It will need to be well thought-out, scalable, and secure. It will also need to be deployed on AWS.

This is the documentation for the original site. Use this as your jumping-off point: https://a856-cityrecord.nyc.gov/

API Docs:

API endpoints

Requirements

Your proposal must include (using this template):

  • A description of the problem that the client has presented
  • At least two personas of your users
  • User flows
  • A clear problem statement from each persona
  • What business problem are you trying to solve?
  • Why do I need technology to solve this problem? How might I solve it without technology?
  • Clearly present the technical requirements of solving the business problem
  • A solution for a new microservice
  • How the microservice solution will solve the companies problems
  • How to make the microservices scalable? Explain how to break out new microservices and when.
  • The pros/cons of implementing a microservice solution.
  • Include an external case study that demonstrates a similar problem/solution

Overall, your app must:

  • Consist of a back-end and front-end application
  • Have clean, maintainable code
  • Contain feature, integration, and unit tests for both the front-end and back-end, using the appropriate libraries.
  • Be deployed to the cloud via Amazon Web Services

Back-end:

  • Use Spring Boot to add a new service to your environment. You will need an API gateway and service discovery for your API.
  • Create or modify a Database to view, save, update, and delete records.

Testing

  • Write End-to-End feature tests that use the full docker-compose environment
  • Use Selenide to write fluent feature tests
  • Use Jasmine to write fluent Angular tests

Front-end:

  • Build a SPA in Angular
  • Communicate with your back-end API in order to manage User information
  • Use components for reusable elements
  • End to End UI tests

Bonus Ideas

  • Build high-fidelity prototypes with a tool such as Figma or Sketch.
  • Move your Flyway migrations into their own Docker container
  • Style it up!
  • Deploy your app to the cloud
  • Include the ability to access data with API keys using some form of authentication.

Deliverables (turned in on Schoology)

  • A Proposal deck including:
    • The problem that the client has presented
    • User personas
    • Problem statements
    • Statement of the business problem
    • Technical requirements and implementation plan
    • Data to back up your solution
  • Your code, hosted on Github with:
    • At least 30 commits
    • A README.md file telling me:
      • A link to the deployed app on Amazon Web Services
      • What the application is
      • How to start the app
      • How to run the tests
  • A set of User Stories, hosted on Trello (or an equivalent tool)
    • You must actually USE your user stories, not simply write them at the beginning and leave them behind.
    • Make sure your Trello board is PUBLIC before turning in.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment