BMW AG - Location Based Services – Software Development
Creating a REST API for vehicle position data
Today’s vehicles are connected and can constantly transmit anonymized information to backend
systems. This information can be used for fleet intelligence and services like real-time traffic information,
or for customer-related features like find-my-car. Your task is to create a REST API that can receive,
process and store vehicle movement information.
Mandatory Task
Implement a web service that can receive vehicle position data. Data is defined by the following
attributes
timestamp: long
latitude: double
longitude: double
heading: integer
session: string
Please design and implement a REST web-service that is capable of receiving one position per request.
The position data is uploaded for a certain vehicle. Concurrent uploads by multiple vehicles must be
supported. The received position data shall be stored internally on the back-end server. Persistent
storage of these observations is not required.
The web-service shall then provide APIs to:
get all sessions of a vehicle in correct ordering
get a single session as an ordered list of the received positions by timestamp
get the last position of a certain vehicle
The definition of an appropriate data model is up to you. You are free to design your solution as you
want or use any desired libraries as long as
The application uses a REST interface for communication with the vehicles and communicates via
HTTP.
The endpoints shall be protected by an appropriate authentication method.
Your application is written in Java, JavaScript or TypeScript.
Your application should be easily deployable and runnable. We should be able to run your webservice
with only minimal manual effort on a standard Ubuntu Linux or Windows. A Java 8
runtime environment or NodeJS 8 will be available.
The application is provided as a self-contained project or uses a dependency manager like maven
to include required libraries. Building and running the program has to be very simple.
Extensions
In case you want to, feel free to pick from the following extensions to extend your solution. We
absolutely do not expect you to do this as part of the application process.
Implement persistence for your data using a database of your choice. If possible, the database
program/library shall be embedded into your artifact with your build.
BMW AG - Location Based Services – Software Development
Implement a very simple client that consists of one web page with a map view using UI
frameworks of your choice. The user shall be able to select a vehicle and view all data of the
selected vehicle on the map. The user shall be able to navigate on this map.
Submission
Your submission shall contain the following
All your source code
A deployable artifact
A short guide on how to build and run your web-service
A sample script to inject the attached observations either in form of a shell script using CURL
Documentation about the URLs to retrieve the data
Evaluation Criteria
For us this assignment helps to get insight into your style of software engineering and coding. In large
companies it is essential to write good quality code that can easily be understood or extended by other
developers.
Attachments
A csv file of sample position data.
Notes
We are aware that the above task description might contain ambiguities. In case you feel that the above
requirements are not clear or something essential is missing feel free to make an assumption and note
your assumptions when you submit your solution or send us an email.
Happy Coding
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。