This Service Marketplace Platform connects service providers (vendors) with customers (issuers) who need services. It supports service listings, bidding, and interest expression functionalities.
- User Authentication: Secure login and registration system for users with roles (Issuer and Vendor).
- Service Listings: Issuers can create listings for services they need, specifying details such as service descriptions, amounts, and dates.
- Bidding System: Vendors can place bids on services, indicating their interest and proposed terms.
- Interest Expression: Vendors can express interest in services, and issuers can view interested vendors.
- Backend: Node.js with Express.js framework, providing a RESTful API.
- Database: Utilizes Prisma ORM with PostgreSQL for data management.
- Authentication: Uses JSON Web Tokens (JWT) for handling user authentication and protecting routes.
- Node.js: JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express.js: Web application framework for Node.js, designed for building web applications and APIs.
- Prisma: Next-generation ORM for Node.js , used for database operations.
- PostgreSQL: Open-source relational database system.
- JWT: For secure user authentication.
- Clone the repository
git clone https://github.com/TheMohit2003/Google-Solution-Challenge-Backend.git
cd Google-Solution-Challenge-Backend
- Install dependencies
npm install
- Set up the database
Ensure you have PostgreSQL installed and running. Create a database for the project and update the .env
file with your DATABASE_URL
.
- Add jwt secret key
Add jwt secret to the .env
file
- Run Prisma migrations
npx prisma migrate dev
- Start the server
npm start
Create a .env
file in the root directory with the following variables:
DATABASE_URL
: Your PostgreSQL database connection string.JWT_SECRET
: A secret key for JWT token generation and verification.PORT
: (Optional) Port for the server to listen on.
Refer to the file for OpenAPI (Swagger) documentation of the API endpoints. You can upload this file to tools like Swagger UI or Bump.sh to visualize and interact with the API's resources.
Contributions are welcome! Please read our contributing guidelines for how to propose bugfixes, features, and submit pull requests.