CauseCompass

Inspiration

In today's world, corporate greed and unethical practices often slip by unnoticed, and with information scattered across countless sources, news cycles, and social media platforms, us consumers are left in the dark.

We built CauseCompass to change that, to give people a consolidated, trusted way to see where their money is going and what major corporations really stand for. We wanted to turn everyday spending into meaningful action and help people realize that together, our choices have power.

"Every time you spend money, you're casting a vote for the kind of world you want." — Anna Lappé (author and sustainable food advocate)

What it does

CauseCompass helps users discover how ethical the companies they support really are.

It brings together reports, articles, and controversies into one easy to use platform, giving each brand an ethical rating based on key causes like sustainability, human rights, and inclusivity, tuned to the user's preferences.

Users can explore company profiles, see where they stand on the issues that matter most to them, and even find ethical alternatives to brands with poor ratings.

Ultimately, CauseCompass empowers people to make informed choices and use their spending power to support the kind of world they want to live in.

How we built it

We started out by clearly defining the vision for our app and the scope we would cover. We decided that our core features would consist of company profiles, ethical ratings, AI-generated summaries, and verified sources.

We designed our database schema in Prisma, showing relationships between companies, tags, and user preferences. We seeded real company data and ethical categories to give the app context.

Next, to formulate flexible and tailored responses for each user, we integrated Google's Gemini API to automatically create short, credible summaries about each company's ethics and controversies based on the user's preferences and values.

For the frontend, we used Next.js and Tailwind CSS to design a clean, intuitive interface where users can search for companies, categories, read summaries, and find alternatives.

Finally, we tested the full flow of the app which we deployed on Vercel, making sure everything worked seamlessly end-to-end.

Challenges we ran into

Supabase API Connection:
We initially struggled with connecting to our Supabase database due to IPv4 vs IPv6 conflicts, which caused Prisma to fail during local testing and deployment. This problem would occur on all of our devices at some point in the hackathon. We were able to solve it by using the correct keys from the SupaBase website and passing different arguments into the key that would secure a clean connection.

Gemini AI Integration:
Integrating Google's Gemini API required careful prompt engineering to tune the input and output of the LLM. We were able to make a strong and consistent prompt template that allows us to generate concise, and accurate company summaries by accessing database data and online sources.

Vercel Deployment:
Managing environment variables and ensuring the app worked seamlessly in production was a challenge, especially making sure the AI and database connections remained stable after deployment and dealing with the IPv4 and IPv6 issues on the Vercel platform.

Accomplishments that we're proud of

Overall, we're proud of the finished product we were able to deploy, which includes solid baseline features with lots of opportunity for future features and changes.

In particular, we are proud of our clean and concise database schema and management, being able to securely store company and user sign-in/preference data while also accessing it for application usage and specifically Gemini API calls.

We are also very proud of our use of the Gemini LLM to both retrieve online sources through grounding, and provide consistent and accurate summaries through proper prompting and data management.

What we learned

This weekend of development was a learning experience for every member of the group. In general, we were all new to the Gemini API and being able to use such a relevant technology like an LLM was an invaluable experience. Additionally, the cycle of database management on Supabase and deployment on Vercel was a big learning experience, teaching us the importance of proper API key management and environment variables.

New technologies aside, we were also all able to brush up on our full-stack development skills, with each group member organizing with the front and back end at some point during development. We were able to help each other use relatively recent technologies like Typescript, Next.js, and Prisma and grow as developers together.

What's next for CauseCompass

At the moment, our team is proud of the product and features we have delivered and deployed, but there is still a lot of room for future improvement and features on CauseCompass, such as:

  1. Large-scale web scraping pipeline:
    An automated pipeline that will add companies to the CauseCompass database with relevant causes, tags, and source articles.

  2. Community and user interaction features:
    In order to bolster the sense of community that CauseCompass provides, in the future we would like to implement an upvote and downvote system of Company profile summaries, a comment section for users to share their positive or negative experiences with different brands, as well as any new findings that our application may be unaware of. We started an early version of this feature.

  3. Reports on Company Quarterly Profits/Statistics:
    To show the power of boycotting and smart purchasing, we would like to implement blog post style reports that show increase and decreases in company profits to inspire users and show them that their actions have power.

Built With

Share this project:

Updates