Welcome to Ugo, the ultimate college rideshare solution! Ugo offers a dynamic platform designed for college students to share rides, host events, and purchase tickets. Our innovative mapping service ensures you get to your destination efficiently.
- Driving: Share a ride or find a ride to campus, events, and more.
- Event Hosting: Create and manage events within the college community.
- Ticketing Service: Easy buying and selling of tickets for campus events.
- Mapping Service: Navigate campus and beyond with Ugo's bespoke maps.
Ugo's development workflow is centered around the dev
branch, which serves as the staging area for all new features and bug fixes.
- Clone the repository and create a new branch off
dev
for each feature or bug fix. - Use GitHub issues to track tasks. Create a branch for each issue you're working on directly from the issue page.
- Always branch off
dev
. - After completing your work, submit a pull request to
dev
. - Pull requests to
main
are reserved for releases and require team review.
- Ask a project maintainer for the
.env
file to connect to MongoDB. - Ensure Docker is installed and running for API services..
- Frontend: Developed with React Native for a seamless mobile experience.
- Backend: Flask API manages database interactions and core functionality.
- Real-Time Services:
node_websockets
handles real-time driver ride requests. - Containerization: Custom APIs are containerized with Docker for consistency across environments.
To set up your development environment, follow these steps:
-
Install Required Software:
- Install Insomnia, cloudflared, React Native CLI, and Docker Desktop.
-
Environment Configuration:
- Create a
.env
file in thefrontend
folder based on the.env.example
. - Acquire a
.env
file for thebackend/flask_api
to connect to the MongoDB server. - Get a
cloudflared
JSON file from a project maintainer and place it in the.cloudflared
directory. - Run the batch scripts in
.cloudflared
to set up your Cloudflare tunnel using your name and tunnel ID.
- Create a
-
Running Instructions:
- In the root project directory (
/ugo/
), rundocker-compose up --build
to start all microservices. - In the
.cloudflared/
directory, runcloudflared tunnel run
to start the Cloudflare tunnel. - In the
frontend/
directory, runnpx expo start -c
to start the Expo server for the React Native app.
- In the root project directory (
-
Docker Setup:
- Ensure Docker Desktop is running.
- In the project root, run
docker-compose up --build
to start the Dockerized microservices.
-
Cloudflared Tunnel:
- Navigate to your
.cloudflared
directory. - Run the user setup batch file:
user_setup.bat
. - Start the tunnel:
cloudflared --config config.yml tunnel run
.
- Navigate to your
-
React Native App:
- In the
frontend/
directory, start the Expo server:npx expo start -c
.
- In the
Make sure to configure the .env
file in your frontend
directory with the necessary variables.
We welcome contributions from fellow students and enthusiasts. Please read our contribution guidelines on submitting pull requests to us.
Thank you for being a part of Ugo, where every journey counts!