Build something that demonstrates the following:
● The ability to architect an application
● The ability to build a beautifully styled front-end or back-end system
● Ability to consume web services as described below
● Ability to build a login with authentication
● Ability to perform basic listing, filtering and viewing etc of the data using web services
Use GitHub as the source control.
Email through the Git repo’s URL once created and make sure you check in regularly.
Bonus points [ although expected :) ]
● Unit tests
Scaffold an application using the technology decided.
● Create an interface admin dashboard that you can login and view all employees in the company.
● Add the ability to view a statistics dashboard with data such as number of employees, birthdays this month, position data, reviews etc. Be creative here.
● Make it easy to find employees in general or relevant to the dashboard.
● Ability to view my full profile
You will be using the T internal web services to build up part of your own system.
The API can be found here: http://staging.████████████████/api/ with the login on the top right.
The authentication service is a token based authentication service to log the user in. Currently
the tokens do not expire. All the data returned from the service is based on the user’s
First you need to retrieve a token by POSTing the username and password to the api-token-auth end point - http://staging.████████████████/api-token-auth/
You can test this with a basic CURL request as shown below
curl -X POST http://staging.████████████████/api-token-auth/ --data "username=pravin.gordhan&password=pravin.gordhan"
This will return a token object:
With the token make any further calls. For example if you wanted to get the details of the logged in user we can call the api:
curl -X GET http://staging.████████████████/api/user/me/ -H 'Authorization: Token 2a3d1af2f3f6d1cddaa3012c1c465fcbdffa3678'
The employee is linked to a user object (one to one) and has:
● User details (All details for the employee such as email, address, etc)
● Position (The position you hold such as Senior Front-end Developer)
● Next of Kins (Any details of next of kin)
● Reviews (Every review employee has with related salary or position changes)
Used to retrieve all staff profiles for the employees. General users will get a limited view of the
employees excluding salary, leave and reviews. An employee object cannot be created. It is
automatically created when a user is created. You cannot delete an employee.
● 'M', 'Male'
● 'F', 'Female'
Race Types (Only some are covered in staging data)
● 'B', 'Black African'
● 'C', 'Coloured'
● 'I', 'Indian or Asian'
● 'W', 'White'
● 'N', 'None Dominant'
Filtering is available on:
● Race, position, start_date, user, gender, birth_date and email
My Profile Service
Used to retrieve the full profile of the user logged in including salary and reviews.
Employee Review Types
● 'P', 'Performance Increase'
● 'S', 'Starting Salary'
● ‘A’, ‘Annual Increase’
● ‘E’, ‘Expectation Review
- Provide us with a Kubernetes config scripts that will create 2 pods on a cluster.
- Only one pod needs to be accessible externally. This pod needs act as a proxy that will perform a call to the second pod to retrieve information.
- The second pod needs to run your application.
- Once this pod receives the request from the first pod it should respond with the information from the application.
- Please ensure to include instructions to execute the required config scripts on minikube.
- The applications may be written in any language.
Please pay particular attention to the requirement. If you are unsure of what to do, rather ask than guess.
Please note that you have 7 days to complete this assignment
Please use GitHub as the source control and commit regularly. Please also send us a link to the GitHub repo once you’ve created it.