Thank you for your interest in working with us at Fone Dynamics! We all love working with talented co-workers. This challenge is intended to help us evaluate where you are in your programming career so we can determine how you might fit within our company.
In order to assess your ability to develop backend and frontend applications, we ask that you develop a RESTful API in C# .Net Core, with an accompanying Angular Frontend.
- You must first fork this repo. If you do not have a GitHub account, you will need to first sign up in order to fork it.
- Clone your forked repo and develop the application according to the requirements below.
- Once you think you have completed the exercise to a satisfactory level, ensure all of your code has been committed to your forked repo and issue a Pull Request back to the FoneDynamics repo.
You have been tasked to build a HTTP RESTful API using C# .Net Core, with an Angular frontend.
All data is to be sourced from exercise.yaml
- no need to set up a real database.
Develop a RESTful API in C# .Net Core with two endpoints which return JSON:
- Authorizes usernames and passwords -
auth
key inexercise.yaml
, and returns a JWT to authenticate against the customer endpoint - Returns customer data -
customers
key inexercise.yaml
. This endpoint accepts the JWT received from the auth endpoint and must check the validity of it before returning results
Develop an Angular application which has two parts:
- A login screen which authorizes via the authorization endpoint in the backend
- Once authenticated, routes the user to the customer page. The customer page retrieves and displays to the user a table of customer data retrieved from the backend's customer endpoint
The customer table has the following requirements:
- UI layout must be based on
ui.png
- it must implement paging
- it must provide filters on the following:
- tags
- number of employees - 1-10 employees, 11-50 employees, 50+ employees
As well as the filters, each column must be able to be reordered by clicking on the appropriate heading (ascending/descending)
The customer table must not be viewable unless the user is authenticated.
If you have any questions around the implementation of this exercise, please open an Issue on the parent repository at https://github.com/fonedynamics