A full-featured furniture store built with Node.js, Express, MongoDB, and Bootstrap. Includes product catalog, cart functionality, and PayPal integration.
- Node.js v18+
- MongoDB Atlas account or local MongoDB instance
- PayPal Developer account (for sandbox testing)
# Clone repository
git clone https://github.com/yourusername/furnicraft.git
cd furnicraft
# Install dependencies
npm install
# Set environment variables (create .env file)
cp .env.example .env
MONGODB_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/furnicraft
PORT=3000
SESSION_SECRET=your_session_secret_here
PAYPAL_CLIENT_ID=your_paypal_client_id
NODE_ENV=development
Role | Password | |
---|---|---|
Admin | admin@example.com | Pass1234 |
Customer | user@example.com | Pass1234 |
npm run dev
# Build for production
npm run build
# Start production server
npm start
docker build -t furnicraft .
docker run -p 3000:3000 -d furnicraft
flyctl launch
flyctl deploy
- User Authentication (Login/Register)
- Product Management (CRUD Operations)
- Shopping Cart (LocalStorage + DB sync)
- PayPal Integration (Sandbox Mode)
- Responsive Design (Mobile-first)
Database Schema
Method | Endpoint | Description |
---|---|---|
POST | /api/user/register |
Register a new user |
POST | /api/user/login |
Login user |
GET | /api/user/check-auth |
Check if user is authenticated |
GET | /api/user/logout |
Logout user |
POST | /api/orders |
Create new order |
GET | /api/users/orders |
Get user order history |
GET | /api/products |
List all products |
GET | /api/categories |
List all categories |
GET | /api/search |
Search functionality |
POST | /api/wishlist |
Add item to wishlist |
GET | /api/wishlist |
Get wishlist items |
POST | /api/cart |
Add item to cart |
GET | /api/cart |
Get cart items |
MIT License - See LICENSE
for details.
- Bootstrap 5 for UI components
- PayPal Node.js SDK for payment processing
- MongoDB Atlas for cloud database hosting