Codebase: d:\Project\Easiest
Lumina Foundation is a comprehensive digital platform designed to streamline operations for Non-Governmental Organizations. By integrating volunteer management, donation processing, and event coordination into a single unified interface, the platform addresses the critical need for digital transformation in the non-profit sector.
NGOs often struggle with fragmented systems for:
- Managing Volunteers: Tracking applications, skills, and availability is often done manually on spreadsheets.
- Processing Donations: Lack of transparent, easy-to-use digital payment gateways reduces donor trust.
- Event Coordination: Promoting events and tracking engagement is difficult without a centralized hub.
- Transparency: Demonstrating impact to stakeholders requires aggregated data that is hard to compile manually.
- Impact Showcase: Dynamic pages highlighting the NGO's work.
- Volunteer Portal: Easy-to-use application form collecting skills and availability.
- Secure Donations: Integrated Razorpay payment gateway for seamless financial contributions.
- Real-time Announcements: Stay updated with the latest news.
- Secure Dashboard: Role-based access control (RBAC) ensuring only authorized personnel access sensitive data.
- Volunteer Management: Review, approve, or reject volunteer applications with a single click.
- Event Management: Create, update, and delete upcoming events.
- Financial Overview: Track donation history and status in real-time.
- Audit Logging: Comprehensive logs of all administrative actions for accountability.
We prioritize the security of our users and data above all else. Our architecture is built on a "Secure by Design" philosophy:
- Row Level Security (RLS): We use PostgreSQL's RLS policies to enforce security at the database layer. This means that even if the API layer is compromised, data access is still restricted by the database rules. For example:
- Public users can read events but cannot modify them.
- Only Admins can view volunteer contact details.
- Users can only edit their own profiles.
- Role-Based Access Control (RBAC): Strict separation between 'authenticated' users and 'admin' roles. Our middleware and database policies work in tandem to prevent privilege escalation.
- Secure Authentication: Powered by Supabase Auth, we use industry-standard JWTs (JSON Web Tokens) for session management. We do not store passwords directly.
- Supabase Infrastructure: Data is secured by Supabase's enterprise-grade infrastructure, featuring encryption at rest, encryption in transit, and continuous backups.
- Audit Logging: Every critical action taken by an admin (approvals, deletions, updates) is immutably recorded in the
audit_logstable, providing a complete forensic trail. - Secure Payments: All payments are processed via Razorpay, ensuring PCI-DSS compliance. No sensitive card data touches our servers.
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- UI Components: Lucide React
- Platform: Supabase
- Database: PostgreSQL
- Security: Row Level Security (RLS) policies
- Node.js (v18 or higher recommended)
- A Supabase project
- A Razorpay test account
- Clone the repository (if you haven't already).
- Navigate to the web directory:
cd web - Install dependencies:
npm install
Create a .env.local file in the web directory with the following variables:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secretRun the SQL scripts located in the root directory in your Supabase SQL Editor to set up the schema and security policies:
supabase_schema.sql(Main schema and RLS policies)
npm run devOpen http://localhost:3000 with your browser to see the result.