Skip to content

Ell-ena is a smart AI product manager that streamlines task, project, and meeting management through a simple chat interface.

Notifications You must be signed in to change notification settings

AOSSIE-Org/Ell-ena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ell-ena

Ell-ena is your AI-powered teammate that makes managing work effortless. From automatically creating tickets to capturing every detail in meeting transcriptions, Ell-ena keeps the full context of your projects at its fingertipsβ€”so nothing ever falls through the cracks.

It’s like having a smart, proactive teammate who anticipates what you need, organizes your workflow, and helps you stay on top of everything… without you even asking.

Group 7 (1)

🌟 Project Vision

Imagine a world where staying productive is easy and smart. Instead of juggling different apps for tasks, tickets, and meeting notes, users can simply talk to Ell-ena – and it takes care of the rest.

Ell-ena understands natural language commands and turns them into structured tasks, tickets, or notes with context-aware automation. Whether you're a developer, student, or manager, Ell-ena fits right into your workflow and grows with your needs.

πŸ—οΈ Technical Architecture

Ell-ena implements a sophisticated architecture that combines Flutter for cross-platform UI with Supabase for backend services, enhanced by AI-powered processing pipelines for natural language understanding and contextual intelligence.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           FRONTEND (Flutter)                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Auth Module  β”‚  Task Manager   β”‚  Meeting Manager   β”‚  Chat Interface β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                β”‚                   β”‚                  β”‚
        β–Ό                β–Ό                   β–Ό                  β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Supabase Service Layer                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ Auth Client β”‚   β”‚ Data Client β”‚   β”‚Storage Clientβ”‚  β”‚ RPC Client  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚         β”‚                 β”‚                 β”‚                 β”‚         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚                 β”‚                 β”‚                 β”‚
          β–Ό                 β–Ό                 β–Ό                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          BACKEND (Supabase)                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Authenticationβ”‚  PostgreSQL DB  β”‚  Object Storage    β”‚  Edge Functions β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                β”‚                   β”‚                  β”‚
        β–Ό                β–Ό                   β–Ό                  β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       AI Processing Pipeline                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ NLU Processor β”‚ Vector Database β”‚ Embedding Generatorβ”‚  AI Summarizer  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✨ Current Implementation

Final_Ell-ena_overview.mp4

I’ve made demo videos for Ell-ena and separated them by features. So, we can directly check out the RAG & vector search implementation or the bot transcriber. please see this through the drive link. Loved building Ell-enaβ€”would be super excited to see new ideas fixes and features coming up and getting it merged soon! πŸš€

GOOGLE DRIVE

✨ Architecture of Ell-ena

NoteGPT-Sequence Diagram-1756295185752

✨ Key Features

  • Generate to-do items and tickets using natural language commands
  • Transcribe meetings and maintain full contextual notes
  • Chat-based interface for intuitive and seamless user interactions
  • Context-aware automation to enrich task details automatically
  • RAG (Retrieval-Augmented Generation) implementation for contextual intelligence
  • Multi-account login support with team management capabilities
  • Real-time collaboration features across teams

✨ System Components

1. Frontend Layer (Flutter)

  • Auth Module: Handles user authentication, team management, and role-based access control
  • Task Manager: Processes task creation, updates, and workflow management
  • Meeting Manager: Manages meeting scheduling, transcription, and contextual analysis
  • Chat Interface: Provides natural language interaction with the AI assistant

2. Supabase Service Layer

  • Auth Client: Manages authentication tokens and session state
  • Data Client: Handles real-time data synchronization with PostgreSQL
  • Storage Client: Manages file uploads and retrieval
  • RPC Client: Executes remote procedure calls to Edge Functions

3. Backend Layer (Supabase)

  • Authentication: Handles user identity, security, and session management
  • PostgreSQL DB: Stores structured data with Row-Level Security policies
  • Object Storage: Manages binary assets like audio recordings and documents
  • Edge Functions: Executes serverless functions for business logic

4. AI Processing Pipeline

  • NLU Processor: Processes natural language using Gemini API
  • Vector Database: Stores and retrieves semantic embeddings for context-aware searches
  • Embedding Generator: Creates vector embeddings from text for semantic similarity
  • AI Summarizer: Generates concise summaries of meeting transcriptions

Data Flow

  1. User Input Processing:

    • User interacts with the Flutter UI
    • Input is processed by the appropriate manager module
    • Requests are routed through the Supabase Service Layer
  2. Backend Processing:

    • Authentication verifies user identity and permissions
    • PostgreSQL handles data persistence with real-time updates
    • Edge Functions process complex business logic
  3. AI Enhancement:

    • Natural language is processed through the NLU pipeline
    • Text is vectorized for semantic understanding
    • Context-aware responses are generated based on historical data
    • Meeting transcriptions are summarized and enriched with action items
  4. Response Delivery:

    • Processed data is returned to the frontend
    • UI updates in real-time through Supabase subscriptions
    • User receives intelligent, context-aware responses

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (3.7.0 or later)
  • Supabase account
  • Gemini API key
  • Vexa API key

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/Ell-ena.git
    cd Ell-ena
  2. Set up backend (Supabase)

  3. Set up frontend (Flutter)

πŸ“ Project Structure

Backend Structure

supabase/
β”œβ”€β”€ config.toml                # Supabase configuration
β”œβ”€β”€ functions/                 # Edge Functions
β”‚   β”œβ”€β”€ fetch-transcript/      # Retrieves meeting transcriptions
β”‚   β”œβ”€β”€ generate-embeddings/   # Creates vector embeddings
β”‚   β”œβ”€β”€ get-embedding/         # Retrieves embeddings
β”‚   β”œβ”€β”€ search-meetings/       # Performs semantic search
β”‚   β”œβ”€β”€ start-bot/             # Initializes AI assistant
β”‚   └── summarize-transcription/ # Generates AI summaries
└── migrations/                # Database migrations

Frontend Structure

lib/
β”œβ”€β”€ main.dart                  # Application entry point
β”œβ”€β”€ screens/                   # UI screens
β”‚   β”œβ”€β”€ auth/                  # Authentication screens
β”‚   β”œβ”€β”€ calendar/              # Calendar view
β”‚   β”œβ”€β”€ chat/                  # AI assistant interface
β”‚   β”œβ”€β”€ home/                  # Dashboard screens
β”‚   β”œβ”€β”€ meetings/              # Meeting management
β”‚   β”œβ”€β”€ onboarding/            # User onboarding
β”‚   β”œβ”€β”€ profile/               # User profile
β”‚   β”œβ”€β”€ splash_screen.dart     # Initial loading screen
β”‚   β”œβ”€β”€ tasks/                 # Task management
β”‚   β”œβ”€β”€ tickets/               # Ticket management
β”‚   └── workspace/             # Team workspace
β”œβ”€β”€ services/                  # Business logic
β”‚   β”œβ”€β”€ ai_service.dart        # AI processing service
β”‚   β”œβ”€β”€ meeting_formatter.dart # Meeting data formatter
β”‚   β”œβ”€β”€ navigation_service.dart # Navigation management
β”‚   └── supabase_service.dart  # Supabase integration
└── widgets/                   # Reusable UI components
    └── custom_widgets.dart    # Shared widgets

SQL Structure

sqls/
β”œβ”€β”€ 01_user_auth_schema.sql    # User authentication schema
β”œβ”€β”€ 02_user_auth_policies.sql  # Row-level security policies
β”œβ”€β”€ 03_task_schema.sql         # Task management schema
β”œβ”€β”€ 04_tickets_schema.sql      # Ticket management schema
β”œβ”€β”€ 05_meetings_schema.sql     # Meeting management schema
β”œβ”€β”€ 06_meeting_transcription.sql # Transcription storage
β”œβ”€β”€ 07_meetings_processed_transcriptions.sql # Processed text
β”œβ”€β”€ 08_meetings_ai_summary.sql # AI-generated summaries
β”œβ”€β”€ 09_meeting_vector_search.sql # Vector search capabilities
└── 10_generate_missing_embeddings.sql # Embedding generation

Future Enhancements

  1. Multi-language support: Expand NLU capabilities to support multiple languages.
  2. Enhanced analytics: Use AI to generate predictive analytics for tasks and meetings.
  3. Offline capabilities: Allow limited offline task management with later synchronization.
  4. Third-party integrations: Integrate with external productivity tools like Jira, Trello, and Google Calendar.

🀝 Contributing

Ell-ena is an open-source project under AOSSIE for GSoC'25. We welcome contributions from the community!

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please read our Contributing Guidelines for more details.

πŸ“š Documentation

🎨 Figma Designs

Reference designs for the project can be found here:


Note: This project is part of GSoC'25 under AOSSIE and is actively under development.

About

Ell-ena is a smart AI product manager that streamlines task, project, and meeting management through a simple chat interface.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •