Back to Projects
Periodic Explorer
AI & Programming
Featured Completed

Periodic Explorer

A Desktop Periodic Table Lookup Tool Built with Python and Tkinter

Class

Senior Five of 2025

Year

2025

Supervisor

Mr. Hassan Mugabo

Contributors

BRIAN NGIJU SWORO

Technologies Used

Python 3 Tkinter In-memory Python dictionaries
  1. Project Overview

Periodic Explorer is a desktop application that stores data for the first 50 elements of the periodic table and lets a user look up any element by its name, symbol, or atomic number. It was built early in my Python learning journey as a practical way to apply core programming concepts — data structures, functions, conditionals, and event-driven programming — in a single self-contained tool with a graphical interface.

  1. Problem Statement

Looking up periodic table information by flipping through a textbook or searching online can be slow, especially when a student just needs one specific detail such as an atomic weight or category. This project solves that by storing the atomic number, atomic weight, symbol, group, period, category, and radioactive status of the first 50 elements in a structured dataset, and giving the user an instant, searchable interface to retrieve that information.

  1. Features
  • Search by name, chemical symbol, or atomic number, with results returned instantly.
  • Live autocomplete: as the user types, a suggestions list filters in real time, matching partial names or symbols.
  • Colour-coded categories: both the suggestion list and the result panel are shaded according to the element’s category (e.g. noble gas, halogen, transition metal), making the type of element visually obvious at a glance.
  • Detailed result panel showing atomic number, name, symbol, atomic weight, group, period, radioactive status, and category.
  • Clear/reset button to wipe the search field and results.
  • Keyboard support — pressing Enter triggers a search without needing the mouse.
  • Tooltips on the Search and Clear buttons to guide first-time users.
  • Friendly error handling: an unrecognised query shows a clear “element not found” message instead of crashing.
  1. How It Works

Element data is stored in a Python dictionary, keyed by atomic number, where each value is itself a dictionary holding that element’s symbol, name, atomic weight, group, period, radioactive status, and category. A second dictionary maps each category to a display colour, which is reused both in the autocomplete list and the results panel for visual consistency.

The interface is built with Tkinter and the themed ttk widgets. A text variable is traced so that every keystroke in the search box automatically re-filters the autocomplete suggestions. Selecting a suggestion, clicking Search, or pressing Enter all route to the same search function, which matches the query against each element’s atomic number, name, or symbol and displays the result — or an information dialog if nothing matches.

  1. Technology Stack
ComponentTechnology
LanguagePython 3
GUI FrameworkTkinter (with ttk themed widgets)
Data StorageIn-memory Python dictionaries (no external database)
Interface ElementsEntry field, Listbox, Buttons, Labels, custom Tooltips
  1. What I Learned
  • Structuring real-world data using nested dictionaries and looking it up efficiently.
  • Building an event-driven interface, where actions (typing, clicking, pressing Enter) trigger functions rather than the program running top to bottom.
  • Connecting widgets together with Tkinter variables (StringVar) and event bindings/traces.
  • Writing small reusable utility functions, such as the tooltip helper, that can be attached to any widget.
  • Basic UX thinking — giving instant visual feedback (colour coding, live suggestions) rather than making the user wait for a full search.
  1. Possible Improvements
  • Extend the dataset to cover all 118 known elements.
  • Add an interactive, clickable periodic table grid instead of only a text search.
  • Include electron configuration, melting/boiling points, and discovery year for each element.
  • Persist and load the element data from an external file (e.g. JSON or CSV) instead of hard- coding it in the script.
  1. Conclusion

Periodic Explorer was a foundational project that turned early Python concepts into a working, interactive tool. It demonstrates core skills in data structures, GUI programming, and basic user- experience design, and remains a solid base to extend into a more complete periodic table reference application. BRIAN NGIJU SWORO Page 3

Project Gallery