EcoFinds is a modern, sustainable marketplace built with React and Node.js where users can buy and sell eco-friendly products. The platform promotes circular economy principles by giving pre-owned items a second life while connecting environmentally conscious buyers and sellers.
- Product Browsing - Search and filter products by category, price, condition, and location
- Advanced Search - Smart filtering with multiple criteria and sorting options
- Product Categories - Electronics, Fashion, Home & Garden, Books, Sports, and more
- Product Details - Comprehensive product pages with images, descriptions, and seller info
- Authentication - Secure user registration and login system
- User Profiles - Customizable profiles with bio, location, and contact info
- Dashboard - Personal dashboard for managing listings, orders, and account
- Shopping Cart - Add products to cart with quantity management
- Wishlist - Save favorite items for later
- Product Comparison - Compare multiple products side-by-side
- Reviews & Ratings - User feedback system for products and sellers
- Easy Listing - Simple product listing with image upload and descriptions
- Inventory Management - Track your listings, sales, and performance
- Seller Analytics - View sales statistics and buyer interactions
- Responsive Design - Mobile-first design with touch optimization
- Dark/Light Mode - User preference theme switching
- Real-time Updates - Live notifications and status updates
- Progressive Web App - Installable web app with offline capabilities
- React 19.1.1 - Modern React with hooks and context
- React Router v6 - Client-side routing and navigation
- Tailwind CSS - Utility-first CSS framework
- Lucide React - Beautiful icon library
- Context API - State management for auth, cart, wishlist
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database with Mongoose ODM
- JWT - JSON Web Tokens for authentication
- bcrypt - Password hashing and security
- VS Code - Recommended IDE with extensions
- ESLint - Code linting and formatting
- Git - Version control system
Make sure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local installation or MongoDB Atlas)
- Git
git clone https://github.com/muhammadnavas/EcoFinds.git
cd EcoFinds# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create environment file
cp .env.example .env
# Edit .env file with your configuration
# Add your MongoDB URI, JWT secret, etc.MONGODB_URI=mongodb://localhost:27017/ecofinds
JWT_SECRET=your_jwt_secret_key_here
PORT=5000
NODE_ENV=development# Navigate to frontend directory (from root)
cd frontend
# Install dependencies
npm install
# Create environment file (optional)
cp .env.example .env# Make sure MongoDB is running
# The application will automatically create the database and collectionscd backend
npm start
# Server will start on http://localhost:5000cd frontend
npm start
# App will open on http://localhost:3000- Browse Products - Visit the homepage to see featured products
- Search & Filter - Use the search bar and filters to find specific items
- View Categories - Explore products by category
- Product Details - Click on any product to see full details
- Add to Cart - Add desired items to your shopping cart
- Checkout - Complete your purchase with secure payment
- Create Account - Register and complete your profile
- List Products - Click "Sell Item" to create new listings
- Manage Listings - Use your dashboard to track and edit listings
- Respond to Buyers - Answer questions and manage orders
- Track Performance - Monitor your sales and ratings
- / - Homepage with featured products and search
- /categories - Browse all product categories
- /sell - Create new product listings (requires login)
- /cart - Shopping cart and checkout
- /profile - User profile and account settings
- /dashboard - Seller dashboard and analytics
- /help - Help center with FAQ and support
// src/config.js
const API_BASE_URL = process.env.REACT_APP_API_URL || 'http://localhost:5000';// backend/config.js
module.exports = {
port: process.env.PORT || 5000,
mongoUri: process.env.MONGODB_URI,
jwtSecret: process.env.JWT_SECRET,
// Add other config options
};cd frontend
npm testcd backend
npm testThe application is fully responsive and includes:
- Touch-optimized interfaces
- Mobile-first design
- Swipe gestures for product browsing
- Progressive Web App (PWA) features
cd frontend
npm run build
# Upload build folder to your hosting service# Add Procfile in backend directory
echo "web: node server.js" > Procfile
# Deploy to your chosen platform- Set
NODE_ENV=production - Update
MONGODB_URIto production database - Set secure
JWT_SECRET - Configure CORS for production domains
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use ESLint configuration provided
- Follow React best practices
- Write meaningful commit messages
- Add comments for complex logic
- Frontend: ~50 components and pages
- Backend: RESTful API with ~20 endpoints
- Database: MongoDB with 8+ collections
- Features: 15+ major features implemented
- Mobile Responsive: 100% mobile optimized
- β Complete marketplace functionality
- β User authentication and profiles
- β Shopping cart and wishlist
- β Product management system
- β Mobile-responsive design
- β Demo payment system
- β Help center and documentation
- π Real payment integration
- π Chat messaging system
- π Order tracking
- π Advanced analytics
- π Push notifications
- π Multi-language support
EcoFinds contributes to environmental sustainability by:
- Extending Product Lifecycles - Giving items a second chance
- Reducing Waste - Preventing items from ending up in landfills
- Promoting Conscious Consumption - Encouraging thoughtful purchasing
- Supporting Local Communities - Connecting local buyers and sellers
Built with π for a sustainable future
EcoFinds - Where sustainability meets marketplace innovation