codingChangllenge_appCDM_Test
codingChangllenge_appCDM_Test
1. Assignment Brief
You are to create a simple mobile application – working title: “Landmark Remark”
- that allows users to save location based notes on a map. These notes can be
displayed on the map where they were saved and viewed by the user that
created the note as well as other users of the application.
This exercise is a timeboxed activity to determine how you plan your time and
approach a challenge with a variable scope. Set yourself a time limit that is within
an acceptable amount for your current circumstances. For the prioritised backlog
below create a solution that meets these high level user stories. You are able to
interpret the implicit requirements behind each story in any way you see fit
(although please mention it in your readme).
It is up to you how you use your time to best show off your skills, but please
explain in your readme why you made that decision. If you don’t expect to finish
all of the user stories, please allow some time to mention in your readme the
approach you would have taken and why.
Remember: This exercise is not about you completing as much scope as possible,
more the quality of the code that you do produce as well as the thought you have
put into your approach given your self-imposed time limit.
Backlog
3. As a user I can see notes that I have saved at the location they were saved
on the map
4. As a user I can see the location, text, and user-name of notes other users
have saved
5. As a user I have the ability to search for a note based on contained text or
user-name
2. Technology Stack
You may implement your solution to these requirements (both explicit and
implicit) in any one of the following technology stacks ( unless you have been
otherwise instructed ). Each stack has its own set of additional directions and
constraints so please read this section carefully.
You are free to leverage any freeware third-party tools or products, however
please document your decision making process in the readme..
The iOS Native Application must be written in Swift. You may not use WebView to
implement any aspect of the application. Your application must perform well on
an iPhone X and later form factor device.
Source code must be developed and runnable in the latest version of XCode.
The Android native application should be written in Kotlin and should target
minimum API level 26. You may not use WebView to implement any aspect of the
application. Your application should perform well on the latest Google Pixel
device. Source must be developed and runnable in Android Studio .
The Microsoft .NET Web Application must use .NET Core and function as a
Single-Page Application (SPA) , leveraging either React or Angular front-end
frameworks to deliver the user interface. The application is not required to be
responsive, but you should document your decision making process here either
way.
Source code must be developed and runnable in Microsoft Visual Studio (2017
or greater) or VS Code.
2.4 Java Web Application
The Spring MVC Application must use Spring 4+ and use SpringBoot and
function as a Single-Page Application (SPA), leveraging Angular or React
front-end frameworks to deliver the user interface. The application is not
required to be responsive, but you should document your decision making
process here either way.
Source code must be developed and runnable in IntelliJ IDEA . You are
encouraged to follow test-driven development practices in developing the
application.
Source code can be developed with either ES6+ or TypeScript using the latest
stable Node.js release. You are encouraged to follow test-driven
development practices in developing the application.
3. Backend support
● Firebase ( https://firebase.google.com )
● Kumulos ( https://www.kumulos.com )
● Realm ( https://realm.io/products/realm-mobile-platform)
4. Support
If you have questions about this specification you may reply to the email in which
you received it. Responses will aim to be given within one business day.
5. Deliverables
5.1 Manifest
5.2 Distribution
At minimum you should deliver a zip of the entire source of this project to the
email address from which you received your assignment. If you are comfortable
with it, you may also use a code distribution service such as “GitHub” as long as
you can give Tigerspike appropriate access.
For iOS native builds, you do not need to worry about signing or provisioning
profiles. Once received the code will be recompiled using Tigerspike
provisioning profiles (as necessary).