Second Hand Marketplace is an e-commerce platform for individuals to buy and sell second-hand items. The platform offers features such as item search, user rating, chat, scheduling, and payments. It includes both web and mobile applications, backed by a microservices architecture.
- User registration and authentication
- Item listing, search, and categorization
- Order management
- Payment integration
- User rating system
- Chat functionality between users
- Scheduling meetings using third-party APIs (e.g., Google Calendar)
- Forum for user discussions (optional)
- Mobile app for Android
- Frontend: React
- Mobile: [React Native or Flutter, or other mobile framework]
- Backend: Spring Boot
- Database: MySQL
- Deployment: [Docker, Kubernetes, or cloud provider]
- User Service: Handles user registration, authentication, and profile management.
- Item Service: Manages item listings, including CRUD operations, search, and categorization.
- Order Service: Manages the order process and related transactions.
- Rating Service: Handles user ratings and reviews.
- Chat Service: Manages chat functionality between users.
- Scheduling Service: Handles scheduling and integration with external calendar APIs.
- Payment Service: Manages payments and integrates with the chosen payment provider.
- Forum Service (optional): Handles the forum functionality if included.
- Install Java Development Kit (JDK)
- Install a Java IDE, such as IntelliJ IDEA or Eclipse
- Install Node.js and the React CLI
- Install a mobile app development framework, such as React Native or Flutter
- Install Docker and Kubernetes or a cloud provider's container orchestration service
- Install Git
- Sign up for a GitHub account
-
Clone the repository:
-
Follow the README files in each microservice directory for instructions on setting up and running the services.
-
Follow the README files in the frontend and mobile app directories for instructions on setting up and running the applications.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.