Tailors Mall is a platform built to connect tailors and clients, providing powerful tools for designers to showcase their portfolios, clients to search and filter designers, and both to engage in meaningful interactions.
- Features
- Technologies Used
- Project Structure
- Installation
- Usage
- API Documentation
- Contributing
- License
- Contact
- User Profiles: Separate profiles for clients and designers.
- Portfolio Display: Tailors can create and showcase their designs and portfolios.
- Search and Filter: Clients can search for tailors and filter them based on their preferences.
- Client-Tailor Interaction Tool: Tools for communication and collaboration between clients and designers.
- Authentication and Authorization: Secure login and registration for both clients and tailors.
- Real-Time Notifications: Instant updates and notifications to keep users informed.
- Booking System: Clients can book services directly from tailors' profiles.
- Rating and Reviews: Clients can leave feedback on the services provided by tailors.
- Secure Payments: Integration with payment gateways for secure transactions.
- Multilingual Support: Support for multiple languages to cater to a global audience.
- TypeScript: Strongly typed programming language for scalable and maintainable code.
- Express: Fast, unopinionated, minimalist web framework for Node.js.
- MongoDB: NoSQL database for storing user data and portfolios.
- Redis: In-memory data structure store for caching and session management.
- Cloudinary: Image and video management for storing and displaying portfolios.
- Axios: Promise-based HTTP client for making requests to APIs.
- Multer: Middleware for handling multipart/form-data, used for file uploads.
- JWT (JSON Web Tokens): For authentication and secure data transmission.
- Nodemailer: For sending emails such as notifications and verification links.
Tailors_Mall-Backend/
├── package.json
├── package-lock.json
├── src/
│ ├── constants/
│ ├── core/
│ ├── files/
│ │ ├── admin/
│ │ ├── auth/
│ │ ├── user/
│ ├── templates/
│ ├── utils/
│ ├── validations/
│ └── index.ts
└── tsconfig.json
- constants/: Contains constants like status codes.
- core/: Core functionality including app configuration, database setup, and server initialization.
- files/: Contains modules for admin, authentication, and user (clients/designers) features.
- templates/: Email templates for various notifications.
- utils/: Utility functions for handling Redis, email, cloud storage, etc.
- validations/: Validation schemas for user input.
-
Clone the repository:
git clone https://github.com/Techies-Collab-and-Upskill-Live-Project/Tailors_Mall-Backend.git
-
Navigate to the project directory:
cd Tailors_Mall-Backend
-
Install dependencies:
npm install
-
Create a
.env
file based on the.env.example
and update the environment variables.
PORT=5500
MONGO_URL=mongodb+srv://<username>:<password>@<cluster-url>/TailorsMall?retryWrites=true&w=majority
TOKEN_EXPIRE_IN=1d
[email protected]
BASE_URL=https://your-base-url.com
CLOUDINARY_NAME=your-cloudinary-name
CLOUDINARY_API_KEY=your-cloudinary-api-key
CLOUDINARY_API_SECRET=your-cloudinary-api-secret
GMAIL_APP_KEY=your-gmail-app-key
[email protected]
REDIS_URL=your-redis-url
SENDGRID_API_KEY=your-sendgrid-api-key
SECRET_KEY=your-secret-key
-
Start the development server:
npm run dev
- Authentication: Secure login and registration using JWT.
- Portfolio Management: Designers can upload their designs using Cloudinary.
- Client-Tailor Interaction: Clients can send requests to tailors, and tailors can respond to them.
- Real-Time Notifications: Stay updated with instant notifications about bookings, messages, and more.
Detailed API documentation is available in the docs/
folder or through the Postman collection link here.
Contributions are welcome! Follow the steps below to contribute:
-
Fork the repository.
-
Create a new feature branch:
git checkout -b feature-name
-
Commit your changes:
git commit -m 'Add some feature'
-
Push to the branch:
git push origin feature-name
-
Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Thanks to the following people who have contributed to this project:
Remember to keep this README updated as the project evolves. If you have any questions or need help, don't hesitate to reach out to me or post on the Devs WhatsApp group. Let's build an amazing project together! 😄 🚀 🔥
Happy coding!