R3vly
R3vly
Julio Fernandez
Ozzie Munoz
The aim of our project was to create an application that could be sold as a product, generate revenue, and support a large user base. From the very beginning we understood that the chances of us generating money were slim. As a result, another key goal was to apply what we’ve learned in school so far and explore technologies beyond what is covered in our coursework. This way even if we failed at making money we could gain real experience in building production grade software, and to learn new technologies. This would make us more marketable when applying for jobs by providing an impressive project to showcase during interviews and strengthen what we can highlight on our resumes. These goals were thought of in such a way that even if we failed in one we would succeed in the other.
For these reasons, every feature that we implemented was designed with scalability, security, architecture, and responsiveness in mind. Furthermore, all features were developed in a way that ensures the codebase remains maintainable in the long term. These considerations are essential as they help prevent crashes, protect sensitive information, maintain application integrity, reduce vulnerabilities to hacking, ensure robustness, and support iterative development. These design choices support both our goals in monetization and building an impressive interview ready showcasing project.
We pursued our goal of monetization by creating a platform that delivers automotive value. Within this platform, users can share, find, and ask for information about any vehicle. Additionally, users have the option to connect with the car enthusiast community if that is of interest to them. The platform also introduces a verification system for mechanics, allowing them to apply for a verified status indicated by a wrench icon next to their name, making them easily distinguishable. Verified mechanics can promote their services and be discovered by users based on location. They can also receive reviews from previous customers and showcase their past work. This enables users to browse feedback and make informed decisions when selecting a mechanic. Our monetization strategy includes charging mechanics a monthly platform fee, displaying advertisements, and offering premium memberships. Premium memberships would provide enhanced visibility and exposure for mechanics who choose to subscribe.
Our goal of applying what we have learned in school so far and exploring technologies beyond our coursework was a clear success. While there are many examples that demonstrate progress in both areas, only a few key highlights will be discussed to maintain conciseness.
Beginning with the application of academic knowledge, this project would not have been possible without a strong database as a foundation. A Postgres database was designed and implemented, consisting of 25 carefully structured tables and 28 indices. This is easily the largest SQL database that either of us has worked with, let alone built from the ground up. Another example of applying course concepts is the fully custom authentication and authorization system. For authentication user passwords are salted and hashed, ensuring a high level of data integrity and confidentiality. For authorization users are assigned roles, and permissions are determined based on those roles.
In addition to applying existing knowledge, several technologies beyond the scope of our coursework were explored. These include JWT tokens, hardware considerations, operating systems, and Cloudflare Tunnels. JWT tokens were used to maintain stateless user sessions, providing an efficient and secure method of verifying user identity with each request. Hardware considerations became important due to the decision to self host. We are hosting on a Raspberry Pi equipped with a sufficiently large SSD. This decision balances performance and affordability. This approach also required learning a Debian based Linux distribution commonly used with Raspberry Pi devices. To further strengthen security, password based SSH authentication was disabled and replaced with private key authentication. This significantly reduces the risk of brute force attacks, as access now requires possession of a secure cryptographic key rather than a potentially guessable password. Additionally, Cloudflare Tunnels are used to expose the application to the internet. This technology eliminates the need for port forwarding and provides built-in HTTPS encryption, ensuring that all communication is secure. Together, these technologies enhanced both the security and reliability of the system while expanding technical knowledge beyond the classroom.
Within the span of this semester we have made great progress towards our vision for this platform with development of key features such as authentication, posting, searching, and messaging amongst others. The full list of features that we have been able to create and examples of them in use can be found in our landing page which you can visit with this link (click here for landing page). From our landing page you can additionally look through our application as a guest or sign up for free. Note however that the data found in the landing page and in our application is fake and intended for display and demonstration purposes.
Future work will focus on expanding the platform’s accessibility by developing a mobile version compatible with both Android and iOS, allowing us to reach a broader audience. We also plan to put together a pilot testing team to gather feedback, identify areas for improvement, and refine the user experience. In addition, marketing efforts will be explored to increase visibility and attract a larger user base. Looking ahead, we aim to expand the platform to support not only mechanics but also other automotive professionals, such as detailers, body technicians, and automotive electricians.