A comprehensive platform for NGOs to submit and track their impact metrics. The application allows NGOs to report their monthly activities, including people helped, events conducted, and funds utilized. Administrators can view a dashboard with aggregated data across all NGOs and examine individual reports.
Deployed Link: https://ngo-impact-reports.vercel.app/
- Next.js 14: App Router for server components and client-side rendering
- React: UI library for building the user interface
- Tailwind CSS: Utility-first CSS framework for styling
- shadcn/ui: Reusable UI components built with Radix UI and Tailwind
- React Hook Form: Form handling and validation
- Sonner: Toast notifications
- Next Auth: Authentication and session management
- Zustand: State management
- MongoDB: NoSQL database for storing user data and reports
- Mongoose: MongoDB object modeling for Node.js
- NextAuth.js: Authentication framework
- API Routes: Next.js API routes for server endpoints
- Vercel: Hosting platform for the application
- User Authentication: Secure login for NGOs and administrators
- Role-Based Access Control: Different permissions for NGOs and administrators
- Report Submission: NGOs can submit monthly impact reports
- Dashboard: Comprehensive view of aggregated impact metrics
- Month Filtering: Filter reports and dashboard data by month
- Responsive Design: Works seamlessly on desktop and mobile devices
- Node.js (v18 or newer)
- npm or yarn
- MongoDB database (local or Atlas)
Create a .env.local
file in the root directory with the following variables:
# MongoDB
MONGODB_URI=your_mongodb_connection_string
# NextAuth
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret
# Optional: for production
# VERCEL_URL=your_vercel_url
- Clone the repository
git clone https://github.com/your-username/ngo-reports-frontend.git
cd ngo-reports-frontend
- Install dependencies
npm install
# or
yarn install
- Run the development server
npm run dev
# or
yarn dev
- Open http://localhost:3000 in your browser
To seed the database with sample data:
npm run seed
# or
yarn seed
- admin, admin123 (administrator)
- madjob, madjob1 (NGO)
- madjob2, madjob2 (NGO)
- madjob3, madjob3 (NGO)
The application is set up for easy deployment on Vercel:
- Fork this repository
- Connect your fork to Vercel
- Set up the environment variables in Vercel project settings
- Deploy!