A modern, multilingual NGO website built with Next.js, supporting children, people with disabilities, and people experiencing poverty.
- 🌍 Multilingual: Full support for English, Danish, and Persian (RTL)
- 🎨 Modern UI: Clean design with Tailwind CSS
- 📝 Admin Panel: Simple CMS for managing posts and announcements
- 💳 MobilePay Integration: Dynamic donation banner with monthly box numbers
- 🖼️ Cloudinary Integration: Image hosting and optimization
- 🔒 Secure Authentication: NextAuth with role-based access
- 📱 Fully Responsive: Mobile-first design
- ♿ Accessible: WCAG 2.1 AA compliant
- 🚀 SEO Optimized: Sitemap, metadata, and structured data
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- Image Storage: Cloudinary
- Internationalization: next-intl
- Deployment: Vercel (recommended)
- Node.js 18+
- PostgreSQL database
- Cloudinary account
- Clone the repository:
git clone https://github.com/yourusername/unity-foundation.git
cd unity-foundation- Install dependencies:
npm install- Set up environment variables:
cp .env.example .envEdit .env with your actual values.
- Initialize the database:
npm run prisma:migrate
npm run prisma:generate- Run the development server:
npm run devOpen http://localhost:3000 to view the site.
unity-foundation/
├── app/ # Next.js App Router pages
│ ├── [locale]/ # Localized public pages
│ ├── admin/ # Admin panel
│ └── api/ # API routes
├── components/ # React components
│ ├── ui/ # UI primitives
│ └── ... # Feature components
├── lib/ # Utilities and configurations
├── messages/ # Translation files
├── prisma/ # Database schema
└── public/ # Static assets
Access the admin panel at /admin/login.
Default features:
- Create, edit, and publish posts
- Manage donation banner and MobilePay number
- Upload images to Cloudinary
- Multi-language content management
Use Prisma Studio or SQL to create the first admin user:
npx prisma studioThen create a user with role ADMIN. Hash the password using bcrypt before storing.
- Push code to GitHub
- Import project to Vercel
- Add environment variables
- Deploy
Ensure these are set in your production environment:
DATABASE_URLCLOUDINARY_*credentialsNEXTAUTH_SECRETNEXTAUTH_URLNEXT_PUBLIC_BASE_URL
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run prisma:migrate- Run database migrationsnpm run prisma:generate- Generate Prisma clientnpm run test:e2e- Run E2E tests with Playwright
This is a private project for Unity Foundation. For questions, contact the administrator.
Founder: Mandana Zaboli Administrator: cocode.dk / Babak Bandpey
All rights reserved © Unity Foundation