Inspiration
CharityConnect was inspired by the vital role small, local charities play in community support, often operating with limited resources and visibility compared to larger organizations. We recognized a significant gap: individuals eager to make a difference struggled to discover and connect with these impactful local causes. The goal was to bridge this divide, making it effortless for people to find and support the incredible work happening right in their neighborhoods, while simultaneously empowering local charities to reach a broader audience and amplify their impact.
What it does
CharityConnect is a comprehensive platform designed to connect volunteers and donors with local charitable organizations. Key functionalities include:
- Charity Discovery: Users can search, filter, and browse local charities by location, categories (e.g., Education, Environment, Animals), and specific needs. AI-Powered Volunteer Matching: An intelligent system leverages Google Generative AI (Gemini) to match users with personalized volunteer opportunities based on their interests, skills, and availability.
- Volunteer Journal: Authenticated users can track their volunteer activities, log hours, record impact, and earn achievement badges, providing a comprehensive overview of their contributions.
- Saved Charities: Users can bookmark their favorite charities for easy access and management, fostering ongoing engagement.
- Event Registration: Discover and register for upcoming volunteer events organized by local charities.
How we built it
CharityConnect is built on a modern web stack designed for performance, scalability, and a rich user experience:
- Frontend: Developed with Next.js (React framework) for server-side rendering and static site generation, ensuring fast load times and SEO. Styling is handled using Tailwind CSS for utility-first design, complemented by shadcn/ui for accessible and customizable UI components. Lucide React provides a comprehensive set of icons.
- Backend & Database: Supabase serves as the robust backend, providing a PostgreSQL database, user authentication, and API services.
- Artificial Intelligence: The AI-powered volunteer matching feature integrates with Google Generative AI (Gemini) to process natural language queries and provide intelligent recommendations.
- Deployment: The application is configured for deployment on Netlify.
Challenges we ran into
Developing CharityConnect presented several key challenges:
- Supabase Row Level Security (RLS): Implementing granular and non-recursive RLS policies proved complex, especially when managing user-specific data access (e.g., saved charities, journal entries) while also allowing public access to charity profiles. Ensuring the service_role could bypass RLS for administrative tasks without compromising security was also a significant hurdle.
- Next.js Static Export Compatibility: Adapting API routes and authentication flows to work correctly with Next.js static exports necessitated implementing client-side authentication handling for API requests, which added a layer of complexity.
- Data Modeling for Dynamic Content: Designing a flexible database schema to accommodate diverse charity data, including dynamic content like current needs, campaigns, and impact metrics, while ensuring efficient querying.
Accomplishments that we're proud of
We are particularly proud of several key accomplishments that highlight the robustness and innovative nature of CharityConnect:
- Seamless Integration of Advanced Technologies: Successfully integrating Next.js for a performant frontend, Supabase for a scalable backend and authentication, and Google Generative AI (Gemini) for intelligent matching demonstrates our ability to build a cohesive and powerful application from diverse technologies.
- Robust and Secure Data Management: Overcoming the complexities of Row Level Security (RLS) in Supabase to ensure strict data privacy and isolation for each user, while simultaneously providing public access to charity data, was a significant achievement. This ensures that user data is secure and that the platform remains reliable.
- Intuitive User Experience: We've created a user-friendly interface that simplifies the process of discovering charities, logging volunteer activities, and managing saved organizations. The focus on clear navigation, responsive design, and immediate feedback enhances user engagement and makes the platform a pleasure to use.
- Innovative AI-Powered Matching: The implementation of the AI volunteer matching feature stands out as a core innovation. It transforms a potentially tedious search process into a personalized and efficient experience, directly addressing a key user need.
- Comprehensive Feature Set: Delivering a wide array of interconnected features, from charity discovery and AI matching to volunteer journaling and saved lists, all within a unified platform, showcases the project's ambition and execution quality.
What we learned
Through the development of CharityConnect, we gained invaluable experience and insights:
- A deep understanding of Supabase's advanced features, particularly RLS, custom functions, and authentication triggers, and how to leverage them for secure and scalable applications.
- Best practices for Next.js application architecture, including effective use of client and server components, data fetching strategies, and API route design.
- The importance of robust error handling, loading states, and user feedback to create a seamless and intuitive user experience.
- Strategies for integrating external AI services (Gemini) into a web application to deliver intelligent features.
- The critical role of meticulous database migration management and version control in maintaining schema integrity.
What's next for Charity Connect
The future of CharityConnect is focused on expanding its impact and enhancing user engagement:
- Enhanced Journaling: Introduce rich text notes for activities, and potentially allow users to categorize and tag their saved charities for better organization.
- Advanced AI Matching: Further refine the AI matching algorithm to provide even more precise and diverse volunteer opportunities.
- Community Features: Implement features for users to share their saved charity lists or volunteer achievements with friends.
- Notifications: Develop a notification system to alert users about new urgent needs or campaigns from their saved charities.
- Charity Dashboards: Create dedicated dashboards for registered charities to manage their profiles, post needs, and track engagement.
Additional Context
CharityConnect is built with a strong emphasis on user experience, security, and transparency. It aims to be a completely free platform for both volunteers and verified charities, fostering a more connected and impactful community.
Built With
- gemini
- nelify
- nextjs
- supabase
Log in or sign up for Devpost to join the conversation.