Inspiration
People across the globe are buying cars everyday just to use them for a fraction of the time. What if we put this idle time to use? What if the average car owner pocketed quick cash when not using their car? Enter, CommunalCars!
What it does
CommunalCars is everyday cars put to communal use.
With CommunalCars, users may register as a car owner or a rider. Those who wish to rent a vehicle can browse available cars in their community and rent them according to the owner's pre-established availability. Car owners may label their cars as “available” when working or travelling.
As stated before, this idea comes from the fact that most cars only see 1-2 hrs of use a day and just sit idle the rest of the time, wasting so much earning opportunity for the car owners. Additionally, this would help the environment as this would result in less people buying cars overall.
How we're different
Unlike popular transportation apps like Uber or Lyft, CommunalCars gives opportunities for users to earn money without even having to be in their car. CommunalCars serves as a side income for those who are busy during the day and a more affordable, short-term option for users who need to rent a vehicle. Moreover, as compared to other rental cars which usually only allow you to rent for long periods of time such as over the span of a few days or weeks, CommunalCars is targeted towards those who only need a vehicle to get around for a few hours, and for renters to be able to rent out their cars while they're shortly away from them at work.
How we built it
CommunalCars is a mobile application, with the frontend built using React Native and Redux, and the backend with Node.js and Express.js, using MongoDB as the database. Axios was used to fetch data from the backend to render to the frontend. Mongoose was used for object document mapping and MongoDB Compass was used for easier database management. Postman was also used to test HTTP API requests. The Twilio Chat API was also utilized.
Challenges we ran into
Our team initially struggled with setting up our development environment, as well as learning React-Native for the first time. We struggled with trying to connect our React-Native app with our Express backend through our RESTful API. None of our team members worked with React-native before, and none of us had an experience connecting frontend with backend server calling APIs. It was a succession of learning and struggling for all the members. We eventually got everything setup and successfully connected React-Native with Express using Axios for some APIs, but unfortunately did not have enough time to use the full APIs implemented on the backend server.
We were also trying to integrate the Twilio Conversations API for chat messaging but kept on running into several errors and realized we had to tweak and think of how to get it to work for only two users talking to each other at one time. As this feature is introduced for multiple users within specific channels on the actual Twillio API getstarted docs.
Accomplishments that we're proud of
Firstly, we are proud that our actual application ended up looking extremely similar to our Figma prototype design.
Secondly, one of us had worked with React-Native before so that's been a big milestone. Additionally, we all faced issues with the set-up of Andriod Studio and Xcode, and connecting the emulator. And after hours of debugging and installing dependencies, we successfully ran the app! Furthermore, we also figured out how to structure the backend for our specific use case and integrate the backend to the frontend for mobile applications - a task no one on the team has done before.
Moreover, because it was our first React-Native project, environment set-up was a nightmare, but we pushed through despite mainly failed attempts on connecting virtual machines.
We are also proud that we were able to actively collaborate, struggle together, and find solutions together to solve multiple problems we faced while making our full stack mobile application.
What we learned
Our biggest takeaways are:
- Learning mobile development with React Native
- Using Postman for API testing
- Connecting backend and frontend for mobile applications
What's next for Communal Cars
As mentioned we have tried to implement the Twilio Conversations API to add chatting between the person owning the vehicle and the person trying to rent it but due to time constraints, it was difficult to do so. We would add this feature for sure, as well as video and audio calling so that the car can be shown live over camera and so the users can talk to each other over call. We would also add in features like location based suggestions as well as different options according to the needs of the user like whether a sedan, SUV or luxury car is wanted/needed. A live GPS tracker would also be useful to show the owner where the person renting the car is roughly around. This could also be used to show how far the person is from picking up the car. We would eventually also add in a web app once we see a growing user base.




Log in or sign up for Devpost to join the conversation.