Inspiration

Our project was inspired by the challenges many of our fellow computer science students faced when working with course materials and practice problems. We noticed that students often struggle to effectively manage and interact with course materials spread across various PDFs and resources. This inspired us to create Clarity, a platform that would streamline access to learning materials while providing AI-integrated tools for better comprehension and problem-solving.

What it does

Clarity is a learning platform that:

  • Automatically organizes notes, slides, and questions into structured computer science concepts with an easy-to-navigate interface
  • Features an intelligent AI bot that can answer questions about concepts and practice problems based on the course material
  • Enables users to track their progress through practice problems of varying difficulty
  • Offers a clean, intuitive interface for accessing educational materials
  • Supports uploading and processing PDF files for course content

How we built it

We developed Clarity using a full-stack approach:

Backend:

  • Python with FastAPI for the AI-powered backend services
  • PDF processing with PyMuPDF for document analysis and extraction
  • Vector search capabilities using FAISS for efficient similarity matching
  • LlamaIndex for document indexing and semantic retrieval
  • Anthropic's Claude API for powering our intelligent AI assistant
  • VoyageAI integration for additional AI capabilities
  • Node.js/Express server for handling file uploads and content delivery
  • MongoDB with GridFS for storing PDF files (with fallback to in-memory storage)

Frontend:

  • React/Next.js for the user interface and component architecture
  • Tailwind CSS for responsive, modern styling
  • Custom PDF viewer component for seamless document viewing
  • Interactive chat interface for communicating with the AI assistant
  • State management for tracking user progress and interactions

Challenges we ran into

During development, we faced several significant challenges:

  • PDF viewer implementation: Integrating a reliable PDF viewer proved difficult due to browser compatibility issues and JavaScript library limitations
  • MongoDB connection problems: We encountered SSL/TLS errors when connecting to MongoDB Atlas
  • PDF processing: Handling binary PDF files, parsing content was technically challenging
  • Component integration: Ensuring smooth interaction between different parts of the application required careful state management

Accomplishments that we're proud of

Despite the challenges, we achieved several key successes:

  • Developed an intelligent AI assistant powered by Claude that provides contextual help for specific concepts and problems
  • Implemented document understanding capabilities using LlamaIndex and FAISS for semantic search
  • Created a natural conversational interface that makes complex topics more approachable
  • Built a fully functional learning platform with an intuitive, responsive interface
  • Created a flexible server architecture that adapts to connectivity issues
  • Developed a modular frontend design that can easily scale with additional features

What we learned

  • Methods for effective AI integration in educational applications
  • Techniques for document indexing and semantic search using vector embeddings
  • Prompt engineering techniques to enhance AI assistant capabilities
  • Approaches to contextual awareness in conversational interfaces
  • Best practices for integrating Python and Node.js in a full-stack application

What's next for Clarity

Looking forward, we plan to enhance Clarity in several ways:

  • Expand the AI assistant's capabilities with more specialized knowledge in computer science domains
  • Implement features for the AI to generate practice problems based on user's weak areas
  • Add memory and progression tracking to the AI assistant to provide more personalized learning paths
  • Improve document indexing with fine-tuned embeddings for better search relevance
  • Improve PDF annotation and note-taking features with AI-assisted summarization
  • Develop collaborative learning features where the AI can facilitate group discussions
  • Create a mobile app version for learning on the go with AI support
  • Expand the website to include many other disciplines

Built With

Share this project:

Updates