Skip to content

JDEX-Coding/hacknation-odnalezione-zguby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ† HACKNATION - Odnalezione Zguby

πŸ“‹ Project Information

Tags

#GovTech #AI #OpenData #SemanticSearch #Microservices #DataStandardization #CLIP #VectorDatabase #EventDriven #dane.gov.pl

Project Type

πŸ›οΈ GovTech Solution - Software app for public administration and integration

Short Tagline

"AI-powered lost & found system that automatically publishes municipal data to dane.gov.pl and provide semantical search for lost items"


πŸ“– Project Description

The Problem

Polish municipalities are legally obligated to manage found items and publish this data on dane.gov.pl (Poland's open data portal). However:

Result: Citizens struggle to find their lost belongings, municipalities waste resources, and the open data initiative suffers from poor adoption.

Our Solution

"Odnalezione Zguby" is an intelligent, AI-powered microservices platform that revolutionizes how municipalities handle lost items:

🎯 Key Features

  1. 5-Click Item Submission

    • Upload photo β†’ AI analyzes β†’ Suggests description β†’ Review β†’ Submit
    • Reduces submission time from 20 minutes to under 2 minutes
  2. AI-Powered Description Generation

    • Vision API (GPT-4o) analyzes uploaded photos
    • Automatically suggests: description, category, and metadata
    • Multilingual support (Polish + international)
  3. Semantic Search with CLIP

    • Natural language queries: "niebieska torebka damska"
    • Image similarity search
    • 512-dimensional vector embeddings
    • Cosine similarity matching
  4. Automated dane.gov.pl Integration

    • One-click dataset creation
    • Automatic DCAT-AP PL formatting
    • Real-time synchronization
    • Compliant with Polish open data standards
  5. Event-Driven Architecture

    • Asynchronous processing
    • High scalability
    • Fault-tolerant design
    • Real-time updates

πŸ—οΈ Technical Architecture

Microservices Stack

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    ODNALEZIONE ZGUBY                       β”‚
β”‚         AI-Powered Lost & Found Management System          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Service A       β”‚    β”‚  Service B       β”‚    β”‚  Service C       β”‚
β”‚  Gateway         │───▢│  CLIP Worker     │───▢│  Publisher       β”‚
β”‚  (Go + HTMX)     β”‚    β”‚  (Python)        β”‚    β”‚  (Go)            β”‚
β”‚  Port: 8080      β”‚    β”‚  ML Pipeline     β”‚    β”‚  dane.gov.pl API β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Infrastructure Layer  β”‚
                    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
                    β”‚  β€’ RabbitMQ (5672)    β”‚
                    β”‚  β€’ MinIO S3 (9000)    β”‚
                    β”‚  β€’ Qdrant DB (6333)   β”‚
                    β”‚  β€’ PostgreSQL (5432)  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Component Details

πŸ–₯️ Service A: Gateway (Frontend)

  • Tech: Go 1.21, HTMX, Tailwind CSS, Alpine.js
  • Role: User interface for municipal workers
  • Features:
    • Real-time AI photo analysis
    • Form validation with legal compliance
    • MinIO S3 image storage
    • Event publishing to RabbitMQ

🧠 Service B: CLIP Worker (AI Engine)

  • Tech: Python 3.11, PyTorch, Transformers, CLIP
  • Role: Machine learning pipeline
  • Features:
    • Text embedding (sentence-transformers/clip-ViT-B-32-multilingual-v1)
    • Image embedding (openai/clip-vit-base-patch32)
    • 512-dimensional vectors
    • Multilingual support (Polish, English, German, etc.)

πŸ“€ Service C: Publisher (Integration)

  • Tech: Go 1.21, REST API Client
  • Role: dane.gov.pl integration
  • Features:
    • DCAT-AP PL standard formatting
    • Automatic authentication
    • Dataset management
    • Resource publishing

πŸ” Service D: Qdrant Service (Vector DB)

  • Tech: Go 1.21, Qdrant gRPC Client
  • Role: Vector database management
  • Features:
    • Cosine similarity search
    • Real-time indexing
    • Batch operations
    • Collection management

Technology Stack

Category Technologies
Backend Go 1.21, Python 3.11
Frontend HTMX, Tailwind CSS, Alpine.js
AI/ML CLIP (OpenAI), GPT-4o Vision, PyTorch, Transformers
Databases Qdrant (Vector DB), PostgreSQL 15, MinIO (S3)
Messaging RabbitMQ 3.12 (Topic Exchange)
Infrastructure Docker, Docker Compose
APIs REST, gRPC, OpenAI API

🎬 Demo & Resources

🌐 Live Demo

URL: https://visionlink.jdex.pl/

πŸ“Ή Video Presentation

YouTube: https://youtu.be/5JFhqebSRmc

πŸ“Έ System Screenshots - Complete User Journey

1. 🏠 Landing Page

Landing Page


2. πŸ“ Add New Item - Empty Form

Empty Form


3. πŸ“· Photo Upload

Photo Uploaded

Image Processing:

  • Instant preview of uploaded photo
  • File validation (type, size)
  • Triggers AI analysis automatically
  • Progress indicator

4. πŸ€– AI Suggestion Generated

AI Suggestions

GPT-4o Vision Magic:

  • ✨ Automatic description: "Blue backpack with laptop compartment"
  • 🏷️ Category suggested: "Bags & Backpacks"
  • πŸ“‹ Characteristics detected: Color, type, features
  • ⏱️ Processing time: ~2-3 seconds
  • πŸ‘€ User control: Review and modify before submission

5. βœ… Using AI Suggestions

Use AI Suggestions

One-Click Acceptance:


6. βš™οΈ Item Processing

Processing View

Real-Time Status Updates:

  • Item successfully submitted βœ…
  • Background processing active:
    • Image stored in MinIO
    • CLIP embedding generation
    • Qdrant vector indexing
  • Event flow visualization
  • User can continue working immediately

7. πŸ“„ Item Details - Complete

Item Details

Comprehensive Item View:

  • Full metadata displayed
  • Legal information: 2-year retention period (Art. 187 KC)
  • Expiration countdown (days remaining)
  • Ready for dane.gov.pl publishing

8. πŸ” Semantic Search in Action

Semantic Search

Intelligent Search Results:

  • Search query: "niebieska torebka" (blue bag)
  • CLIP-powered matching: Understands semantics, not just keywords
  • Visual similarity: Items ranked by vector similarity
  • Result quality: Relevant items with similarity scores

Key Features Demonstrated:


βœ… AI/ML Working in Production

  • GPT-4o Vision: Actually generating meaningful descriptions
  • CLIP Embeddings: Semantic search returns relevant results

βœ… Technical Implementation

  • Event-Driven: Background processing doesn't block users
  • Scalable: Services communicate via RabbitMQ

βœ… Legal Compliance

  • Art. 187 KC: 2-year retention period displayed
  • Transparency: Expiration dates clearly shown
  • Data Quality: Standardized categorization
  • Automatic publishing to dane.gov.pl

πŸ’‘ Innovation Highlights

1. AI-First Approach

  • First Polish municipal system using CLIP for semantic search
  • Vision API reduces data entry time by 90%

2. Event-Driven Architecture

  • Async processing = no waiting for users
  • Fault-tolerant (messages persist in RabbitMQ)
  • Horizontally scalable (add more workers)

3. Standards Compliance

  • DCAT-AP PL format
  • RESTful API design

4. User Experience

  • No technical knowledge required

5. Open Data Excellence

  • Machine-readable formats
  • Automatic synchronization
  • Real-time updates to dane.gov.pl

πŸ“š Documentation

For Developers

Service Documentation


GitHub Repository: https://github.com/JDEX-Coding/hacknation-odnalezione-zguby

Live Demo: https://visionlink.jdex.pl/

Issues & Support: https://github.com/JDEX-Coding/hacknation-odnalezione-zguby/issues

Documentation: Complete docs available in repository


HackNation 2025 Submission

About

Project developed during Hacknation 2025 for Polish Ministry of Digilization, regarding creating a uniformed system for uploading lost things into dane.gov.pl system.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors