MyCargonaut is a platform that connects users for ride-sharing and freight-sharing services. Whether you’re a user looking for a ride or a driver offering one, MyCargonaut has you covered.
- Secure Authentication:
- User and driver registration and login.
- Password reset functionality.
- Ride and Freight Management:
- Post ride offers or freight requests.
- Search and filter options based on location and date.
- Real-Time Tracking:
- GPS-based live location sharing for drivers.
- Reviews and Ratings:
- Feedback system for better trust and transparency.
- Payment Integration:
- Secure payment gateway for transactions.
Frontend | Backend | Database | CI/CD |
---|---|---|---|
Next.js | Spring Boot | PostgreSQL | GitHub Actions |
Tailwind CSS | Hibernate ORM | Prisma ORM | Docker |
NextAuth.js |
.
├── backend/ # Spring Boot backend
│ ├── src/ # Source files for backend logic
│ └── ...
├── frontend/ # Next.js frontend
│ ├── prisma/ # Prisma schema
│ ├── src/ # React components and pages
│ └── ...
├── database/ # Database migration files
├── .github/ # CI/CD workflows
└── README.md # Project documentation
Ensure you have the following installed:
- Node.js: v18.18.0 or higher
- Java: 17 or higher
- PostgreSQL: Local or hosted
- npm: For managing frontend dependencies
- Gradle: For backend builds
- Navigate to the
backend
folder:cd backend
- Update
application.properties
with your PostgreSQL credentials:spring.datasource.url=jdbc:postgresql://<DB_HOST>:<DB_PORT>/<DB_NAME> spring.datasource.username=<DB_USER> spring.datasource.password=<DB_PASSWORD>
- Start the backend server:
./gradlew bootRun
- The backend will run at http://localhost:8080.
- Navigate to the
frontend
folder:cd frontend
- Install dependencies:
npm install
- Configure environment variables in
.env.local
:DATABASE_URL=postgresql://<DB_USER>:<DB_PASSWORD>@<DB_HOST>:<DB_PORT>/<DB_NAME> NEXTAUTH_SECRET=your-secret-key
- Start the frontend server:
npm run dev
- The frontend will run at http://localhost:3000.
Run backend unit tests:
cd backend
./gradlew test
Run frontend unit tests:
cd frontend
npm test
Run Cypress E2E tests:
cd frontend
npx cypress open
Staging is automated via GitHub Actions:
- Push changes to the
features/*
branch:git push origin features/*
- Create a pull request from
features/*
todevelop
. - CI/CD will:
- Run linting, tests, and build processes.
- Deploy the application to the staging environment.
Production deployment occurs after merging develop
into main
:
- Create a pull request from
develop
tomain
. - Once approved, the application will deploy to production.
We welcome contributions! Follow these steps:
- Fork the repository and clone it locally.
- Create a new branch for your feature:
git checkout -b feature/<feature-name>
- Commit your changes:
git commit -m "Add feature: <feature-name>"
- Push your branch:
git push origin feature/<feature-name>
- Create a pull request to the
develop
branch.
This project is licensed under the MIT License.
- Frontend: Next.js, Tailwind CSS, NextAuth.js
- Backend: Spring Boot, Hibernate
- Database: PostgreSQL, Prisma
- CI/CD: GitHub Actions