A modern, full-featured platform for sharing, discovering, and voting on eco-friendly ideas.
| π Project Overview | π Development | π Dashboards |
|---|---|---|
| π Overview | π Tech Stack | π₯ User Roles |
| π Project Links | π Structure | π‘ Admin Panel |
| π Demo Logins | βοΈ Getting Started | π‘ Member Panel |
| β¨ Core Features | π Scripts | πΊ Routes |
EcoPulse is a cutting-edge, community-driven platform designed for environmental innovators. It provides a robust ecosystem for sharing, discussing, and monetizing sustainable ideas. Leveraging Google Gemini AI, EcoPulse helps users transform simple concepts into professional-grade proposals and provides deep data insights into environmental impact.
Built with a focus on Visual Excellence and High Performance, the application features:
- AI-Powered Workflows: Automated content generation and smart recommendations.
- Advanced Architecture: Next.js 16 (App Router) with Server Components and Streaming.
- Premium Design System: A sleek, modern UI with support for both vibrant light and high-contrast dark modes.
- Frontend Live URL: https://eco-pulse-client.vercel.app/
- Backend Live URL: https://eco-pulse-server.vercel.app/
- Database Schema: https://dbdiagram.io/d/Eco-Pulse
To explore the platform's role-based features instantly, use the following credentials:
| Role | Password | |
|---|---|---|
| Admin | admin@gmail.com |
Admin1234 |
| Member | user@gmail.com |
User1234 |
- AI Eco Consultant: Transforms a basic topic into a fully fleshed-out idea proposal (Title, Problem, Solution, Slug).
- AI Smart Recommendations: Dynamically suggests ideas based on user voting history and watchlists.
- EcoPulse AI Chat Assistant: A context-aware floating chatbot providing instant sustainability advice.
- AI Data Analyzer: Professional impact scoring and sentiment analysis for all community ideas.
- Next.js 16 (App Router): Utilizing server components and suspense for optimized performance.
- Optimistic UI: Real-time feedback for votes and engagement actions.
- Zustand State Management: Modular state architecture with persistence for AI and Dashboard features.
- TanStack Query (v5): Advanced data fetching, caching, and background synchronization.
- Monochromatic Premium Theme: A sophisticated design language using HSL-tailored colors.
- Dynamic Animations: Smooth transitions powered by Framer Motion.
- Fully Responsive: Seamless experience across mobile, tablet, and desktop devices.
- Skeleton Loaders: Polished loading states for every data-heavy component.
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript 5 |
| AI SDK | Google Generative AI (Gemini) |
| Styling | Tailwind CSS 4 |
| State | Zustand 5 |
| Data Fetching | TanStack Query 5 |
| Form Logic | TanStack Form + Zod |
| UI Components | shadcn/ui |
| Visuals | Framer Motion + Recharts |
eco-pulse-client/
βββ app/ # Next.js App Router (16.2.2)
βββ components/
β βββ modules/ # Feature-specific modules (Dashboard, Auth)
β βββ shared/ # Global components (AI Chat, Navbar, Footer)
β βββ ui/ # shadcn/ui base primitives
βββ store/ # Zustand global state management
βββ services/ # Server actions and API service layer
βββ hooks/ # Custom React hooks (AI, UI, Auth)
βββ lib/ # Utils (Axios, AI error handling)
βββ zod/ # Validation schemas
βββ env.ts # T3-style Environment validation
- Node.js >= 18.x
- pnpm >= 8.x
-
Clone the repository:
git clone https://github.com/rafiqmia65/eco-pulse-client.git cd eco-pulse-client -
Install dependencies:
pnpm install
-
Set up environment variables:
cp .env.example .env.local
-
Run the development server:
pnpm dev
Create a .env.local file in the project root. The project uses @t3-oss/env-nextjs for strict runtime validation.
# Server Side
FRONTEND_URL=http://localhost:3000
BACKEND_URL=http://localhost:5000
# Client Side (Public)
NEXT_PUBLIC_BACKEND_API_URL=http://localhost:5000/api/v1
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name
NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=your_upload_preset
β οΈ Never commit.env.localto version control. It is already listed in.gitignore.
| Script | Description |
|---|---|
pnpm dev |
Start the development server with hot reload |
pnpm build |
Create an optimized production build |
pnpm start |
Start the production server |
pnpm lint |
Run ESLint for code quality checks |
| Route | Description |
|---|---|
/ |
Homepage β featured ideas and hero section |
/ideas |
Browse all community ideas |
/about |
About EcoPulse |
/blog |
Blog articles |
/login |
User login |
/register |
User registration |
| Route | Description |
|---|---|
/dashboard |
Member overview |
/dashboard/ideas |
Browse ideas within dashboard |
/dashboard/my-ideas |
Manage your own submitted ideas |
/dashboard/ideas-create |
Submit a new idea |
/dashboard/idea-details/:id |
View full idea details |
/dashboard/purchased-ideas |
Ideas you have purchased |
/dashboard/watchlist-ideas |
Your watchlisted ideas |
/dashboard/my-votes-ideas |
Ideas you have voted on |
/dashboard/my-payments |
Your payment history |
| Route | Description |
|---|---|
/admin |
Admin overview & analytics |
/admin/users |
User management (view, block, promote) |
/admin/all-ideas |
Moderate all submitted ideas |
/admin/categories |
Manage idea categories |
/admin/payments |
View all platform payments |
| Role | Description |
|---|---|
| MEMBER | Default role for all registered users. Can submit, vote, purchase, and manage ideas. |
| ADMIN | Full platform access including user moderation, idea approval/rejection, and category management. |
The admin dashboard provides full control over the EcoPulse platform:
- View all registered users with stats (total, active, blocked, admins, members)
- Search and filter by name/email, role, and status
- Make Admin β promote a member to admin
- Block User β restrict a user's access
- Unblock User β restore a blocked user's access
- See Details β view full user profile in a modal
- Review all submitted ideas
- Approve ideas to publish them to the platform
- Reject ideas with written feedback
- Monitor idea statuses: Draft, Pending, Approved, Rejected
- Create, update, and delete idea categories
- View all submitted ideas with statuses
- Edit or delete draft ideas
- Track approval status
- Rich text editor (Tiptap) with formatting, image upload, tables, and task lists
- Set idea visibility (Free/Paid)
- Assign categories
- Track ideas you've saved or voted on
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m "feat: add your feature" - Push to the branch:
git push origin feature/your-feature-name - Open a Pull Request
This project follows Conventional Commits:
feat:β New featurefix:β Bug fixrefactor:β Code refactoringstyle:β Styling changesdocs:β Documentation updateschore:β Maintenance tasks
This project is licensed under the MIT License. See the LICENSE file for details.