This repository contains my submission for the DEV Weekend Challenge. Circula is a local mini-economy platform that connects neighbors to donate, exchange, and borrow items within their community.
In every neighborhood, people have items they no longer need but others could use. At the same time, many people need temporary access to items they don't want to buy. Circula bridges this gap by creating a trusted community marketplace where neighbors can:
- Donate items they no longer need
- Exchange items with others
- Borrow items temporarily
- π Multiple Exchange Types: Support for donations, exchanges, and borrow requests
- π Smart Search & Filter: Find items by type, category, or keywords
- π± Responsive Design: Works seamlessly on desktop and mobile
- π¬ Built-in Messaging: Direct communication between users
- π€ User Profiles: View item history and community reputation
- πΌοΈ Image Support: Upload photos of items to showcase them
- π Pagination: Smooth browsing through large item collections
- Framework: Next.js 16 with App Router
- Language: TypeScript
- Styling: TailwindCSS + shadcn/ui
- State: React hooks + LocalStorage
- Icons: Lucide React
- Forms: React Hook Form + Zod
Live demo available at: circula-community.vercel.app
Note: This project currently uses mock data and LocalStorage as a temporary repository for testing purposes. A real backend can be integrated in the future.
- Node.js (v18+)
- npm
# Clone the repository
git clone https://github.com/wesleybertipaglia/circula.git
# Navigate into the project folder
cd circula
# Install dependencies
npm install# Start the development server
npm run dev
# Open your browser and navigate to
http://localhost:9002/# Create production build
npm run build
# Start production server
npm start- Browse Items: View available items in your area with filtering options
- Create Account: Sign up to start listing or requesting items
- List an Item: Choose between donation, exchange, or borrow
- Connect: Message other users to arrange the exchange
- Complete Exchange: Coordinate with the other party to finalize
Contributions are welcome! If you have any suggestions or improvements, please open an issue or a pull request.
This project is licensed under the MIT License.
