A platform for communities to share and rent tools from each other. List your tools, browse what's available, book what you need, and return when you're done.
- Frontend: React (Vite) + Tailwind CSS v4
- Backend: Express.js + Mongoose
- Database: MongoDB Atlas
- Auth: JWT (access + refresh tokens), Google OAuth
rent-a-tool/
├── client/ # React frontend (Vite)
│ └── src/
│ ├── api/ # Axios instance and API helpers
│ ├── pages/ # Page components
│ ├── components/ # Reusable UI components
│ └── App.jsx
├── server/ # Express backend
│ └── src/
│ ├── config/ # DB connection, env config
│ ├── modules/ # Feature modules (auth, tools, bookings)
│ ├── middleware/ # Auth, RBAC, error handling
│ ├── utils/ # Shared utilities
│ ├── app.js # Express app setup
│ └── server.js # Entry point
- Node.js (v18+)
- MongoDB Atlas account (free tier works)
-
Clone the repo
git clone <your-repo-url> cd rent-a-tool
-
Server
cd server cp .env.example .env # Fill in your values npm install npm run dev
-
Client
cd client cp .env.example .env # Fill in your values npm install npm run dev
-
Open
http://localhost:5173— you should see the health-check status confirming backend + database connectivity.
See .env.example in both client/ and server/ for required variables. Never commit .env files.