← Back to Selected Work / CASE STUDY 03
ACCESSIBILITY & INCLUSIVE INTERFACES

Accessible Railway Ticketing System

Inclusive software design for public transit: A Python/Tkinter interface developed during an internship at CRIS (Centre for Railway Information Systems) converting UTS ticket identifiers into Grade-1 Braille representations.

View on GitHub Verified against repository source
Repository:Empowering-Accessibility-...
Organization / Context:CRIS (Centre for Railway Information Systems)
Primary Language:Python
GUI Framework:Tkinter
Core Logic:Custom Unicode Braille Mapping
Audit Status:Proof of Concept GUI Prototype
System diagram of CRIS UTS accessibility prototype converting station inputs into 6-dot Braille Unicode
Authentic system diagram: UTS Ticket Reservation accessibility translation engine mapping Latin station codes to 6-dot Braille cells.

01. The Real Problem

The Unreserved Ticketing System (UTS) across Indian Railways handles millions of daily passenger journeys. However, physical self-service kiosks and digital booking screens are overwhelmingly tailored for sighted individuals. Visually impaired passengers typically must depend on third parties at crowded ticket counters to verify unreserved ticket numbers, travel corridors, and destination confirmations.

During my summer project at CRIS (Centre for Railway Information Systems), the core question was: How can automated ticketing workflows output standardized tactile Braille representations directly at the terminal level?

02. Braille Translation Engine

The code in main_code.py implements a deterministic symbol translation layer that maps Latin letters and numbers directly to standard 6-dot Braille Unicode glyphs (U+2800 to U+28FF):

main_code.pyBraille Glyph Translation Dictionary
braille_dict = {
    'a': '⠁', 'b': '⠃', 'c': '⠉', 'd': '⠙', 'e': '⠑', 'f': '⠋',
    'g': '⠛', 'h': '⠓', 'i': '⠊', 'j': '⠚', 'k': '⠅', 'l': '⠇',
    'm': '⠍', 'n': '⠝', 'o': '⠕', 'p': '⠏', 'q': '⠟', 'r': '⠗',
    's': '⠎', 't': '⠞', 'u': '⠥', 'v': '⠧', 'w': '⠺', 'x': '⠭',
    'y': '⠽', 'z': '⠵', ' ': ' ',
    '0': '⠚', '1': '⠁', '2': '⠃', '3': '⠉', '4': '⠙',
    '5': '⠑', '6': '⠋', '7': '⠛', '8': '⠓', '9': '⠊'
}

def text_to_braille(find):
    braille_text = ''
    for char in find.lower():
        braille_char = braille_dict.get(char, '')
        braille_text += braille_char
    return braille_text

This allows arbitrary UTS ticket numbers (e.g. UTS NO ➔ ⠥⠞⠎ ⠝⠕) to be formatted immediately for tactile display refreshers or specialized embossers without external network latency.

03. Station Ticketing Workflow

The desktop UI encapsulates key transit parameters:

  • Station Origin & Destination: Dual entry inputs for departure and arrival stations (e.g., From: NDLS, To: CNB).
  • UTS Ticket Identifier: Accepts numerical and alphanumeric ticket confirmation strings.
  • Dynamic Conversion: An interactive trigger translates alphanumeric input into Unicode Braille patterns on the display label.
  • Live Clock Sync: A recurring Tkinter event loop (time_label.after(1000, update_time)) maintains real-time synchronization with station system time.

04. Code Audit & Reality Check

Authentic Repository Findings & Deficiencies

  • Database Verification: While older resume bullet points referenced SQLite database integration, the committed repository code (main_code.py) represents the GUI frontend proof-of-concept. The SQLite schema and data persistence layers are not present in this public repository.
  • Asset Paths: Background images and station logos were linked to local development paths (e.g., D:\cris\back.png). A production build would bundle assets into relative application packages or standard base64 resources.
  • Audio Modality: This repository focused on visual and Unicode Braille generation. Full accessibility would additionally integrate auditory screen-reading (pyttsx3/eSpeak) alongside the tactile output.

05. Design Insights & Engineering Value

Despite being an early internship prototype, this project highlights key principles in public infrastructure software:

  • Design for Extremes: Designing for travelers with visual impairments exposes usability bottlenecks that also benefit fatigued travelers, elderly citizens, and non-English speakers.
  • Standardization: Utilizing standard Unicode Braille patterns ensures compatibility with modern refreshable Braille displays (via USB or Bluetooth HID).
  • CRIS Context: The project provided firsthand exposure to the scale, reliability requirements, and operational complexity of Indian Railways IT systems.