Teebay is a web application built with Next.js that allows users to rent and buy/sell products within various categories.
-
User Authentication:
-
Sign up and create a new account.
-
Log in with existing credentials.
-
-
Product Management:
-
Create products using a multi-step form with intuitive navigation.
-
Edit existing product details and categories.
-
Delete products you no longer wish to list.
-
-
Product Browsing and Transactions:
-
View a comprehensive list of all available products from all users.
-
Buy products directly with a simple confirmation process.
-
Rent products by selecting desired rental start and end dates.
-
-
Product Status Tracking:
-
Keep track of your buying, selling, borrowing, and lending activities through dedicated tabs.
-
View detailed information about each transaction.
-
-
Front-end: React with Next.js
-
Back-end/API: Next.js API routes and ExpressJs
-
Database: Vercel Postgres (https://vercel.com/storage/postgres) managed by Prisma ORM
-
State Management: Zustand
-
Data Fetching: React Query
-
UI Components: ShadCn UI and Tailwind CSS
Prerequisites:
-
Node.js and npm (or yarn) installed
-
Vercel CLI:
npm install -g vercel@latest
Setup:
-
Clone the repository:
git clone https://github.com/nur-zaman/teebay.git
-
Install dependencies:
npm install
-
Create and connect a Vercel Postgres database:
- Create a database named teebay_db (or any name you prefer).
- Connect the project with the db via
vercel link
- Use the Vercel CLI to pull down the environment variables for your local project:
vercel env pull .env
-
Run the development server: npm run dev
-
Access the application in your browser at http://localhost:3000
Optional: Start the Backend Server (Expressjs)
If you want it to connect to the express backend server, you need to set the environment variables in the.env file.
BACKEND="express"
PORT=<any_available_port>
Open another terminal and run npm run express-server
For detailed technical documentation, please refer to teebay.md.
Teebay is deployed on Vercel at https://teebay-olive.vercel.app.