Handcrafted Excellence
Canvora is a full-stack e-commerce marketplace dedicated to showcasing and trading handcrafted arts and products. It serves as a dynamic bridge between artisans and buyers, providing a platform tailored specifically for the trading of artisanal goods.
Artists can create profiles, list their handmade products, and manage inventory. Buyers can browse items, curate wishlists, and utilize a unique request system to propose custom price offers for artworks, facilitating direct and interactive negotiation.
- Dual User Roles: Seamlessly switch between finding beautiful art as a Buyer or showcasing your talent as an Artist.
- Product Management: Artists can list products with details including pricing, images, category, and edition copies.
- Smart Request System: Buyers can make direct "Requests" for products by proposing custom price offers. Artists can choose to accept, reject, or keep the offers pending.
- Curated Wishlists: Users can save their favorite handcrafted products to their personal wishlists for future purchases.
- Smooth UI/UX: Built with Framer Motion and Tailwind CSS, the platform features a responsive, modern, and animated user interface.
- React (via Vite)
- Tailwind CSS (for styling)
- Framer Motion (for smooth animations)
- React Router Dom (for navigation)
- Axios (for API requests)
- Node.js & Express.js
- MongoDB & Mongoose (Database and ODM)
- JSON Web Tokens (JWT) (Secure authentication)
- Bcrypt.js (Password hashing)
- Multer (File/Image uploads)
Make sure you have Node.js and MongoDB installed on your machine.
git clone <your-repository-url>
cd CanvoraNavigate to the backend directory and set up the server:
cd backend
# Install backend dependencies
npm install
# Create a .env file in the backend directory
# Example .env configuration:
# PORT=5000
# MONGO_URI=your_mongodb_connection_string
# JWT_SECRET=your_jwt_secret_key
# Start the backend development server
npm run devThe server will typically run on http://localhost:5000.
Open a new terminal window, navigate to the frontend directory, and set up the client app:
cd frontend
# Install frontend dependencies
npm install
# Start the frontend development server
npm run devThe application will be accessible at http://localhost:5173.
Canvora/
├── backend/ # Express.js REST API
│ ├── controllers/ # Route logic
│ ├── middleware/ # Authentication and error handling
│ ├── models/ # Mongoose Schemas (User, Product, Request, Profile, Wishlist)
│ ├── routes/ # API endpoints mapping
│ ├── uploads/ # Local storage for image uploads
│ └── index.js # Server entry point
│
└── frontend/ # React Vite Application
├── public/ # Static assets
├── src/ # React components, pages, and logic
├── package.json # Frontend dependencies
├── tailwind.config.js # Tailwind styles configuration
└── vite.config.js # Vite bundler configuration
Contributions, issues, and feature requests are welcome! Feel free to check the issues page if you want to contribute.
This project is open-source and available under the ISC License.