Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

MoNature 🌿

A sustainability platform built around the UN Sustainable Development Goals — events, community, donations, maps, and an AI assistant that can actually answer SDG questions.

Live


What's in it

Events — Browse and join cleanups, tree-planting sessions and other local sustainability events. Organisations can submit their own. Locations render on an interactive Leaflet map.

Community forum — Post, reply and organise around green initiatives.

Donations — Stripe-backed giving that funds the events and projects on the platform.

AI assistant — Ask about the SDGs, the platform's mission, or what's coming up. Backed by OpenAI and Google's Generative AI on the server side, not a canned FAQ.

Educational game — An interactive game teaching sustainability concepts.

Accounts — JWT-based sign-up and login, with a personalised view of events and forum activity.

Themes — Dark and light mode via next-themes.

Installable — Configured as a PWA through next-pwa.


Stack

Frontend — Next.js 14 (App Router), TypeScript, Tailwind CSS, shadcn/ui on Radix primitives, Framer Motion, React Hook Form + Zod, Recharts for data views, React Leaflet for maps, next-pwa

Backend — Node.js, Express, MongoDB (Mongoose), JWT + bcrypt auth, Multer + Cloudinary for media, SendGrid for email, Puppeteer for scraped/generated content

AI — OpenAI and Google Generative AI (Gemini)

Payments — Stripe

Docs — Swagger at /api-docs


Repository layout

monature/
├── client/     # Next.js frontend
└── server/     # Express API

Running locally

Prerequisites: Node.js 18+, MongoDB (local or Atlas), and keys for Stripe, OpenAI and Cloudinary.

git clone https://github.com/vincedotcode/monature.git
cd monature

Server

cd server
npm install
cp .env.example .env
npm run dev
MONGODB_URI=
JWT_SECRET=
OPENAI_API_KEY=
GOOGLE_API_KEY=
STRIPE_SECRET_KEY=
SENDGRID_API_KEY=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=

Client

cd ../client
npm install
npm run dev

Open http://localhost:3000.

NEXT_PUBLIC_API_URL=

Contributing

Issues and pull requests are welcome — particularly around the events module and the game.

git checkout -b feature/my-feature
git commit -m "Add my feature"
git push origin feature/my-feature

License

MIT — see LICENSE.

Contact

Vince Erkadoo — vincedotcode.com · vince@vincedotcode.com

About

Sustainable platform: events, community, donations, game, AI chat & contact

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages