Hi! This is the most ambitious project I'm currently working on, and is about virtual motorsport.
I'm a big fan of cars, especially when it comes to racing, so I found in this project a way to join a passion of mine with the opportunity to learn new technologies and practice my programming skills.
It is, basically, an application that allows the creation of virtual motorsport championships. But, more important: all the calculation of the championship standings is done automatically based on the race results.
You can manually create your account, with email and password, or you can sign in with social providers, like Google and Apple.
Welcome Screen | Sign In Screen | Sign Up Screen |
---|---|---|
The first step to create a championship is to define it's basic details, like the name, platform (Playstation, Xbox or PC) and description.
Then, you can select the tracks which will be present on the championship, alongside with their race dates.
Championship Basic Details | Championship Tracks | Championship Race Dates |
---|---|---|
Now, you define the championship's scoring system. Basically, you tell the app how many points each driver will receive per race position. This is necessary to calculate the driver and team standings.
You also define the teams (which are optional) and the drivers which will participate of the championship. You can assign teams for them as well.
Championship Scoring System | Championship Teams | Championship Drivers |
---|---|---|
You are getting there! Now, you just need to define bonifications (like extra points for fastest lap, for example) and/or penalties (points deduction for a collision, for example).
These bonifications and penalties will be assignable to drivers in the races. They will affect, of course, the championship's driver and team standings.
Championship Bonifications | Championship Penalizations |
---|---|
In the home page, you can see all the championships that you created and that you are participating. You can also see their details by pressing on them.
Championship List | Championship Details #1 | Championship Details #2 |
---|---|---|
The details screen contain information like the next race and the leading drivers and teams. You also have the option to edit the championship if you are one of the admins.
You also can, of course, see the full team and driver standings.
Championship Driver Standings | Championship Team Standings |
---|---|
As I mentioned above, you can edit the championship if you are one of the admins by pressing on the "Edit" button.
Championship Edition |
---|
You will be able to edit the following informations:
- Details and Settings (all that we defined in the creation process, like teams, drivers, races etc.)
- Manage Administrators (users that will be able to also edit the championship)
- Manage Pendent Drivers (users will also be able to request the enter in a championship)
- Edit Race Results
- Delete the Championship
-
Front-end: React Native, TypeScript, Redux, Redux Thunk & React Native Testing Library for testing.
-
Back-end: Node.js, TypeScript, Jest & Supertest for testing. Clean Architecture principles are also widely used, like decoupling, layers separation and Dependency Injection.
-
Database: MongoDB with Mongoose.
- Front-end: https://github.com/felipemotarocha/aceleramais-app
- Back-end: https://github.com/felipemotarocha/aceleramais-api
For me, a good testing coverage is indispensable for builiding a good and scalable product. So, in this project, testing is one of my main priorities.
Currently, the test coverage is:
- Back-end: 98%
- Front-end: 80%
My goal is to achieve, at least, more 90% of coverage on the front-end as well.
Feel free to contact me if you have any doubts, considerations or suggestions about the project. Your opinion is very appreciated! My socials: