Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Race Analytic 🏎
- ### Motorsports, video and data of race, anytime, everywhere in your pocket. Race Analytic provides all segments professional and amateur driving analysis.
- ---
- ## Table of contents
- * General Info
- * Technologies
- * Launch
- * Setup
- * Illustrations
- * Scope of functionalities
- ---
- ## General Info
- #### Technical possibilities of a vehicle 🚘
- - Tire brand
- - Tire components
- - Tire pressure before and after the race
- - Tire temperature before and after the race
- - Suspension setup
- - Breaks components
- - Breaks balance geometry
- - Center of gravity
- - Condition of tire
- - Tarmac temperature before and after the race
- - Front and rear position in deferential
- - Front and rear angle of tire
- - G sensor data
- - Horizontal and vertical denivelation
- #### Statistics for driver’s state like pulse and calories consumption 📈
- #### Personal info of the driver: 👱🏼♂️
- - Name
- - Picture
- - Surname
- - Email
- - Birthday
- - Gender
- - Height
- - Weight
- - Wake up and go to sleep time
- - Smoker
- - Handedness
- - FIA license
- - Nationality
- #### Opportunity to pair with: 👱🏼♂️🔛👨🏻🔧
- - Team
- - Manager
- - Mechanic
- - Doctor
- - Trainer
- - Journalist
- - Sponsor
- ---
- ## Technologies
- #### Language
- This app is written in Java language.
- #### Clean up the code
- Make sure the new code follows modern coding practices, with coding documentation
- and clear naming standard.
- ##### Important notice
- The existing code should be refactored following the best practices and principles
- according to Android development group.
- #### Frameworks and Libraries
- - RecyclerView
- - VectorDrawable-animated
- - GpuImage
- - Scottylab Secure Preferences lib
- - CircleImageView by Hdodenhof
- - Glide
- - RxImagePicker by MlsDev
- - ImageCropper by TheArtOfDev
- - Retrofit
- - Gson
- - Scalars
- - GraphView
- - Google Maps
- - ExoMedia by DevBrackets
- - Multidex
- - ButterKnife
- - Facebook auth
- - Google auth
- - EglCore
- #### Architecture
- There is not any particular architecture in this code matching the standards.
- ##### Improvements
- The existing code should be refactored in Model - View - ViewModel and this
- architecture should be followed with all the future feature implementations.
- ##### Model - View - ViewModel (MVVM) by Google #####
- MVVM is one of the architectural patterns which enhances separation of concerns, it
- allows separating the user interface logic from the business (or the back-end) logic. Its
- target (with other MVC patterns goal) is to achieve the following principle “Keeping UI
- code simple and free of app logic in order to make it easier to manage”.
- MVVM has mainly the following layers:
- * Model
- Model represents the data and business logic of the app. One of the
- recommended implementation strategies of this layer, is to expose its data
- through observables to be decoupled completely from ViewModel or any other
- observer/consumer (This will be illustrated in our MVVM sample app below).
- * ViewModel
- ViewModel interacts with model and also prepares observable(s) that can be
- observed by a View. ViewModel can optionally provide hooks for the view to
- pass events to the model.
- One of the important implementation strategies of this layer is to decouple it
- from the View, i.e, ViewModel should not be aware about the view who is
- interacting with.
- * View
- Finally, the view role in this pattern is to observe (or subscribe to) a ViewModel
- observable to get data in order to update UI elements accordingly.
- The following diagram shows MVVM components and basic interactions.
- //ilustration here
- ---
- ## Launch
- #### How to run the project?
- ##### Open Android Studio
- 1. Select the Open existing project option
- //ilustration here
- 2. Open the root project folder
- //ilustration here
- 3. Wait the build to finish
- 4. Select the device on which you want to run the project
- //ilustration here
- 5. Click run button
- //ilustration here
- ##### Testers
- For app testing testers can download the beta version of the app on Google Play
- Store.
- ---
- ## Setup
- #### Clone project from GitLab
- 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.
- > Link to the project: [GitLab](https://gitlab.com/zmijata/raceanalytic-android)
- You need permissions to access this link. Contact one of the developers for permissions.
- - Go to the link.
- - Click on `Project overview` on the left side of the screen, than from the dropdown choose `Details`.
- - On the right side of the screen there is a button `Clone`. Click on it and choose option for cloning.
- 1. Clone with SSH
- 2. Clone with HTTPS
- ## Illustrations
- ## Scope of functionalities
- #### Ready features
- - Separation between car and motorbike
- - Map selection with Google Maps implementation. Option for circuit and open road type
- - Selection for type of driving (training, qualification, race)
- - Option to record video from the driving with option to select low, medium and high resolution (360p, 480p, 720p)
- - Speed metrics
- - Elevation metrics
- - Denivelation metrics
- - G-Force metrics
- - Map route
- - 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)
- - Save driver’s personal info (full name, birth date, height, weight, go to bed and wake up time, dominant hand, smoker, FIA license, nationality)
- - Comparison between drives
- #### To-do features in current version
- - Implementation of connection with gadgets (smartwatches, smart bands, OBD, Garmin)
- - Measurement of pulse, calorie consumption, air pressure
- - Fitness for drivers
- #### Bugs
- - Registration accepts one-character password
- - User can register multiple times with same username
- - Register with Facebook and Google buttons on Register screen are not working (Android)
- - On the Login screen there is password verification only for password length and it should be 6 characters, it is inconsistent with register screen
- - Login with Facebook and Google buttons are working on this screen, but user cannot login with this option
- - Permissions should be requested when the user is trying to use these options, not on the app startup
- - Bad UI/UX practices (ex. Register new user)
- - Navigation drawer is out of usage in Android and it is a bad practice in iOS
- - Cannot start a drive
- - Slider for recording video is not working on iOS
- - Bad navigation on iOS and Android
- - When user is trying to change photo the app crashes (Android)
- - 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
- - Compare with other drive is not working well
- #### Improvements
- - Validation check on every field that requires input from the user
- - Bug fixes
- - Code refactor
- - Improve the UI/UX
- #### Future
- - All car information to be read from gadget (OBD and tire measurement tool)
- - PRO version with improved functionalities
- - Option to pair with another user (pilot, co-pilot, manager or other team member)
- - Video saved on cloud
- - Cast to present on other devices
- - Cloud storage 2GB
- - Get analytics for specific timing of the drive
- - Set start and finish by GPS location
- - Detect near race tracks
- - Detect track limits with camera
- - Detect start and finish of the lap by GPS
- - Detect start and finish of the lap with camera
- #### Source & Inspiration
- 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
- scientific researches in this field.\
- The motivation for this application comes from all of the stages of career of
- Konstantin Angelovski PhD in this segment of the Motorsport. His career starts in 1991
- when he starts as a volunteer in race competitions, after 5 years in 1996 he starts his
- career as a race driver. His racing career will motivate him to start master studies in
- 1998 which will end up with PhD degree in 2004 in the field of “Biomecahic analysis of
- driving technic in hill climb races”. This work explores psychomotorical and
- biomechanic abilities of the driver in a racing car. This PhD dissertation is approved by
- National Sports Academy in Sofia, Bulgaria in the motorsports area. The whole
- methodology and all the conclusions in this PhD are valid for the time when this PhD is
- done. But this is area which is always improving so the future of this is tightly coupled
- with the improvements of the technology. All the technology gadgets and sensors
- which are provided by the modern living can help in this area so the numbers can be
- better and better. The feature brings ability the racing drivers to be replaced with
- machines but racing will always be love and passion of the humans as the most
- intelligent species in this world. That is the reason of the creation of RaceAnalytic so it
- will represent detail analysis of the psychophysical abilities of a driver together with all
- the information about his vehicle and to give opportunity this informations to be
- analyzed by other involving subjects.\
- This system is tested on the race track of ART Karting Center in Skopje owned
- by Konstantin Angelovski PhD and other tracks such as hill climb tracks, other race
- tracks and off-road competitions. This system should represent the core of the cloud
- platform of the motorsports involving not only the pilots and co-pilots but the
- managers, mechanics, doctors, journalists and all other involved in motorsports.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement