Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.80 KB | None | 0 0
  1. # Race Analytic 🏎
  2.  
  3. ### Motorsports, video and data of race, anytime, everywhere in your pocket. Race Analytic provides all segments professional and amateur driving analysis.
  4.  
  5. ---
  6. ## Table of contents
  7.  
  8. * General Info
  9. * Technologies
  10. * Launch
  11. * Setup
  12. * Illustrations
  13. * Scope of functionalities
  14. ---
  15.  
  16. ## General Info
  17.  
  18. #### Technical possibilities of a vehicle 🚘
  19. - Tire brand
  20. - Tire components
  21. - Tire pressure before and after the race
  22. - Tire temperature before and after the race
  23. - Suspension setup
  24. - Breaks components
  25. - Breaks balance geometry
  26. - Center of gravity
  27. - Condition of tire
  28. - Tarmac temperature before and after the race
  29. - Front and rear position in deferential
  30. - Front and rear angle of tire
  31. - G sensor data
  32. - Horizontal and vertical denivelation
  33.  
  34. #### Statistics for driver’s state like pulse and calories consumption 📈
  35.  
  36. #### Personal info of the driver: 👱🏼‍♂️
  37. - Name
  38. - Picture
  39. - Surname
  40. - Email
  41. - Birthday
  42. - Gender
  43. - Height
  44. - Weight
  45. - Wake up and go to sleep time
  46. - Smoker
  47. - Handedness
  48. - FIA license
  49. - Nationality
  50.  
  51. #### Opportunity to pair with: 👱🏼‍♂️🔛👨🏻‍🔧
  52. - Team
  53. - Manager
  54. - Mechanic
  55. - Doctor
  56. - Trainer
  57. - Journalist
  58. - Sponsor
  59.  
  60. ---
  61. ## Technologies
  62.  
  63. #### Language
  64.  
  65. This app is written in Java language.
  66.  
  67. #### Clean up the code
  68.  
  69. Make sure the new code follows modern coding practices, with coding documentation
  70. and clear naming standard.
  71. ##### Important notice
  72. The existing code should be refactored following the best practices and principles
  73. according to Android development group.
  74.  
  75. #### Frameworks and Libraries
  76.  
  77. - RecyclerView
  78. - VectorDrawable-animated
  79. - GpuImage
  80. - Scottylab Secure Preferences lib
  81. - CircleImageView by Hdodenhof
  82. - Glide
  83. - RxImagePicker by MlsDev
  84. - ImageCropper by TheArtOfDev
  85. - Retrofit
  86. - Gson
  87. - Scalars
  88. - GraphView
  89. - Google Maps
  90. - ExoMedia by DevBrackets
  91. - Multidex
  92. - ButterKnife
  93. - Facebook auth
  94. - Google auth
  95. - EglCore
  96.  
  97. #### Architecture
  98.  
  99. There is not any particular architecture in this code matching the standards.
  100.  
  101. ##### Improvements
  102.  
  103. The existing code should be refactored in Model - View - ViewModel and this
  104. architecture should be followed with all the future feature implementations.
  105.  
  106. ##### Model - View - ViewModel (MVVM) by Google #####
  107.  
  108. MVVM is one of the architectural patterns which enhances separation of concerns, it
  109. allows separating the user interface logic from the business (or the back-end) logic. Its
  110. target (with other MVC patterns goal) is to achieve the following principle “Keeping UI
  111. code simple and free of app logic in order to make it easier to manage”.
  112. MVVM has mainly the following layers:
  113. * Model
  114. Model represents the data and business logic of the app. One of the
  115. recommended implementation strategies of this layer, is to expose its data
  116. through observables to be decoupled completely from ViewModel or any other
  117. observer/consumer (This will be illustrated in our MVVM sample app below).
  118. * ViewModel
  119. ViewModel interacts with model and also prepares observable(s) that can be
  120. observed by a View. ViewModel can optionally provide hooks for the view to
  121. pass events to the model.
  122. One of the important implementation strategies of this layer is to decouple it
  123. from the View, i.e, ViewModel should not be aware about the view who is
  124. interacting with.
  125. * View
  126. Finally, the view role in this pattern is to observe (or subscribe to) a ViewModel
  127. observable to get data in order to update UI elements accordingly.
  128. The following diagram shows MVVM components and basic interactions.
  129.  
  130. //ilustration here
  131.  
  132. ---
  133. ## Launch
  134.  
  135. #### How to run the project?
  136.  
  137. ##### Open Android Studio
  138. 1. Select the Open existing project option
  139. //ilustration here
  140. 2. Open the root project folder
  141. //ilustration here
  142. 3. Wait the build to finish
  143. 4. Select the device on which you want to run the project
  144. //ilustration here
  145. 5. Click run button
  146. //ilustration here
  147.  
  148. ##### Testers
  149.  
  150. For app testing testers can download the beta version of the app on Google Play
  151. Store.
  152.  
  153. ---
  154. ## Setup
  155.  
  156. #### Clone project from GitLab
  157.  
  158. We use `GitLab` for Git-repository. GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and CI/CD pipeline features, using an open-source license, developed by GitLab Inc.
  159.  
  160. > Link to the project: [GitLab](https://gitlab.com/zmijata/raceanalytic-android)
  161.  
  162. You need permissions to access this link. Contact one of the developers for permissions.
  163.  
  164. - Go to the link.
  165. - Click on `Project overview` on the left side of the screen, than from the dropdown choose `Details`.
  166. - On the right side of the screen there is a button `Clone`. Click on it and choose option for cloning.
  167. 1. Clone with SSH
  168. 2. Clone with HTTPS
  169.  
  170.  
  171. ## Illustrations
  172.  
  173.  
  174. ## Scope of functionalities
  175.  
  176.  
  177. #### Ready features
  178. - Separation between car and motorbike
  179. - Map selection with Google Maps implementation. Option for circuit and open road type
  180. - Selection for type of driving (training, qualification, race)
  181. - Option to record video from the driving with option to select low, medium and high resolution (360p, 480p, 720p)
  182. - Speed metrics
  183. - Elevation metrics
  184. - Denivelation metrics
  185. - G-Force metrics
  186. - Map route
  187. - Option to add car settings (tire components, suspension, breaking balance, car number, tire brand, tire pressure on start and end, ear/c, tarmac/c, differential proctor, front and rear differential, angle of tires)
  188. - Save driver’s personal info (full name, birth date, height, weight, go to bed and wake up time, dominant hand, smoker, FIA license, nationality)
  189. - Comparison between drives
  190.  
  191. #### To-do features in current version
  192. - Implementation of connection with gadgets (smartwatches, smart bands, OBD, Garmin)
  193. - Measurement of pulse, calorie consumption, air pressure
  194. - Fitness for drivers
  195.  
  196. #### Bugs
  197. - Registration accepts one-character password
  198. - User can register multiple times with same username
  199. - Register with Facebook and Google buttons on Register screen are not working (Android)
  200. - On the Login screen there is password verification only for password length and it should be 6 characters, it is inconsistent with register screen
  201. - Login with Facebook and Google buttons are working on this screen, but user cannot login with this option
  202. - Permissions should be requested when the user is trying to use these options, not on the app startup
  203. - Bad UI/UX practices (ex. Register new user)
  204. - Navigation drawer is out of usage in Android and it is a bad practice in iOS
  205. - Cannot start a drive
  206. - Slider for recording video is not working on iOS
  207. - Bad navigation on iOS and Android
  208. - When user is trying to change photo the app crashes (Android)
  209. - When click on the profile photo in the top right corner on some screens it opens the drawer on other screens it gives the user an option to change the photo, so it is inconsistent
  210. - Compare with other drive is not working well
  211.  
  212. #### Improvements
  213. - Validation check on every field that requires input from the user
  214. - Bug fixes
  215. - Code refactor
  216. - Improve the UI/UX
  217.  
  218. #### Future
  219. - All car information to be read from gadget (OBD and tire measurement tool)
  220. - PRO version with improved functionalities
  221. - Option to pair with another user (pilot, co-pilot, manager or other team member)
  222. - Video saved on cloud
  223. - Cast to present on other devices
  224. - Cloud storage 2GB
  225. - Get analytics for specific timing of the drive
  226. - Set start and finish by GPS location
  227. - Detect near race tracks
  228. - Detect track limits with camera
  229. - Detect start and finish of the lap by GPS
  230. - Detect start and finish of the lap with camera
  231.  
  232.  
  233. #### Source & Inspiration
  234.  
  235.       RaceAnalytic is an application which represents research and scientific work.The data which this application will provide will be used as a clutch data in future
  236. scientific researches in this field.\
  237.       The motivation for this application comes from all of the stages of career of
  238. Konstantin Angelovski PhD in this segment of the Motorsport. His career starts in 1991
  239. when he starts as a volunteer in race competitions, after 5 years in 1996 he starts his
  240. career as a race driver. His racing career will motivate him to start master studies in
  241. 1998 which will end up with PhD degree in 2004 in the field of “Biomecahic analysis of
  242. driving technic in hill climb races”. This work explores psychomotorical and
  243. biomechanic abilities of the driver in a racing car. This PhD dissertation is approved by
  244. National Sports Academy in Sofia, Bulgaria in the motorsports area. The whole
  245. methodology and all the conclusions in this PhD are valid for the time when this PhD is
  246. done. But this is area which is always improving so the future of this is tightly coupled
  247. with the improvements of the technology. All the technology gadgets and sensors
  248. which are provided by the modern living can help in this area so the numbers can be
  249. better and better. The feature brings ability the racing drivers to be replaced with
  250. machines but racing will always be love and passion of the humans as the most
  251. intelligent species in this world. That is the reason of the creation of RaceAnalytic so it
  252. will represent detail analysis of the psychophysical abilities of a driver together with all
  253. the information about his vehicle and to give opportunity this informations to be
  254. analyzed by other involving subjects.\
  255.       This system is tested on the race track of ART Karting Center in Skopje owned
  256. by Konstantin Angelovski PhD and other tracks such as hill climb tracks, other race
  257. tracks and off-road competitions. This system should represent the core of the cloud
  258. platform of the motorsports involving not only the pilots and co-pilots but the
  259. managers, mechanics, doctors, journalists and all other involved in motorsports.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement