-
- 1.1. READ THIS BEFORE YOU BEGIN
- 1.2. Instructions
- 1.3. Project Requirements
- 1.3.1. Scenario
- 1.3.2. Business Facts
- 1.3.3. Success Conditions
- 1.4. Guidelines
This hiring project is intended to gauge a developer's ability to both work with the technologies we are using, as well as their soft-skills.
Technical prowess is a good thing but, by itself, is not enough to earn a spot on our team.
Do not squash or rebase your commits.
- Fork this repo.
- Review the guidelines
- Follow the Project Requirements.
- Reach out with any questions.
- Submit a pull request when your project is finished.
Welcome to Widgets Inc. We have an exciting new product in the insurance sector and we are hoping to expand our offering to cover more of our customer needs.
We've decided to create a simple SPA web-app that allows our customers (the insurance company) to track and manage their policy information. They should be able to add, edit, and delete policies, payments, and invoices.
- A policy should always have an invoice with a payment or payments that offset the amount owed.
- If an invoice is more that 14 days overdue, the policy should cancel.
- The latest state record reflects the current status of the policy.
- Policies can be reinstated within 30 days of cancellation by making a payment in full.
- Annual Premium can be paid monthly. All invoices should be generated ahead of due date.
- Create an Express web backend with an Angular frontend.
- Use the data.json file in the project root to generate a JSON schema and API structure.
- Create a utility function that generates random application data. Using this function should allow for the application to appear to have been in production use for some time.
- Create a docker-compose or host the finished project so that we can easily run it for evaluation.
- Commit early, commit often. We would love to see more commits showing the process you took to get to the finished product. Do not squash or rebase your commits.
- Please use eslint. Airbnb is a great style to use for this project but you may choose another if you wish.
- We'd prefer Typescript to JavaScript but it's not absolutely required.
- Writing tests would be a massive point in your favor.
- Create several visual reports that dissect the available data and presents them in interesting and useful ways. Examples include things like: total payments, cancelled policies, active policies, etc.
- Spend as much, or as little, time on this as you wish. That said, we'd prefer a project be delivered within 72 hours of acceptance.
- We encourage you to reach out to us with any questions you may have. Doing so will not be seen as detrimental to your delivered project.