Video Demo: https://www.youtube.com/watch?v=zLNRZojZTgg
Simple Start Page Maker is a program written in Python that lets the user generate HTML representing a landing or bookmarks page through a Tkinter-based GUI. Start page configurations can also be saved to or loaded from JSON.
To use the application, first open main.py
. Input the names and URLs of the
websites you wish to "bookmark". Optionally, you may also set a custom text
color and a background color by clicking on any of the two buttons at the bottom
and choosing a color from the color picker that appears. Finally, click on
Export to HTML
to indeed generate valid HTML that can then be used with any
web browser. If wanting to save a configuration for later, you may
Save to JSON
and Load to JSON
through the menu buttons of the same name.
Here is the purpose of the various files included in this submission:
main.py
: This is the Python file script that contains the logic of the program itself. Run this file to start the program.constants.py
:main.py
relies on (imports) this file for certain hard-coded constants, such as the template HTML and CSS text files via which the user's configuration is to be applied.output.html
: Sample output HTML file. Something that looks like this should be the output of theExport to HTML
menu button.sample.json
: Sample output (and input) JSON file. When a user clicks onSave to JSON
, something like this must be generated on the disk. When a user attempts toLoad from JSON
, however, something like this must be selected as the input file.README.md
: This very document being read right now. It documents the submission, the various files included therein, as well as some commentary on the rationale behind this program and some design submissions
The project was born out of a desire to add a little bit more personalization to web browsers. To begin with, we could easily just add another bookmark in the default start page and be done with it, but it would be cooler if we could have our own custom-made start page. Many tutorials exist online for this, some of which I have followed in the past to create my own beautiful start pages. At the same time, however, some people may want in on the action, yet may not have enough time to manually code everything from scratch. Hence, the idea to automate at least some part of the process came into being as Simple Start Page Maker. The program is at least niche enough that start pages generated through it would look "different", at least!
The app was written in the Python programming language and makes extensive use of the Tkinter module. Tkinter is a GUI toolchain framework that simplifies GUI development by defining various "widgets" (e.g., Labels, Entries, Buttons, Frames, etc.) that can be instantiated, configured, and combined to create simple but functional GUIs. Rather than hosting a web application through Flask similar to a previous problem set, I opted to use Tkinter instead as I wanted to make an app that looked more native in nature (and also so I could learn another way of making an app with a user interface).
Furthermore, although exporting to HTML is the primary function of this program,
configurations can also be saved and loaded to and from JSON, or JavaScript
Object Notation. The rationale behind this is that users may want to adjust
start pages generated by this program later down the line. I used JSON
specifically because it is a well-recognized file format that can simplify
storing and retrieving the data used in this program, being easily translated to
and from a Python dict
through the json
module.
This project can be expanded to customize other aspects of the page, such as the title and the big "Start" header on top of the links. It would be easy, too: all anyone would need to do is add two more Entries (perhaps in a LabelFrame) and add the needed functionality. Moreover, instead of a background color, it is also possible to add another button to set a background picture instead.