Posts

Updating the Omada 'Access Point Tracker'

Since the post where an 'Access Point Tracker' was developed that makes use of the Omada Open API , many improvements have been made to my project and it is now far appropriate for an IT support team that needs to get information on access points (APs) in their network. On top of quality-of-life changes, the method for updating the page has also been modified to be more efficient and put less stress on the server hosting the tracker, now using JavaScript to access the AP data and fill in the HTML elements. It is essentially a template now, so the HTML is not constantly being generated on the server and will certainly lower the processing power required by the server whenever an update is made. This also allows for the interval at which the AP tracker will update to be lowered tremendously to every second. More Data and Tooltips A key change with the information on APs that is being retrieved is that a lot more is being taken in by the Omada update script. It still gets the IP...

Changing a web page's style based on the time of the year

Image
A fun gimmick that I decided to look into is changing a web page's style based on the current date of the year. Making a page look more frosty when its winter would make for a fun interactive feature that I think would appeal to most. The solution to this simple gimmick was to use  CSS custom properties / variables , which allows for different values to be stored and used throughout the CSS file. For a basic web page, variables for the background colour, text colour and a filter for the background image were created (since the filter property will affect all children elements, the background image has been put into a separate div under the 'body' tag with a special 'bg' ID). These variables can be referenced using ' var() '. Then for each unique page style I wanted, I created a new class that modifies the CSS custom properties. CSS classes for the default (root) style and page styles. Now all that's left is to implement some JavaScript that will determin...

Level select movement inspired by 'Super Mario Bros.' - In Roblox

Image
Game development has been one of my big interests while learning programming. Roblox, a massive online game platform, provides an environment for developing games easily called ' Roblox Studio '. It has its own game engine and uses the programming language ' Luau ', Roblox's version of Lua that implements extra features for better integration with the game engine and to allow creators on the platform to have more control over their creations. A small system that I decided to try and create is the movement for a level select inspired by the 'Super Mario Bros.' series.  Level select movement example from 'New Super Mario Bros. Wii' To be able to create such a system, I first needed to figure out how I would be able to distinguish levels from each other. The simple solution was to assign 'Level IDs' to the parts that would act as the gateway to each level. When you select an object in Roblox Studio, you get access to all of its properties and yo...

Developing an 'Access Point Tracker' using Omada Open API

Image
Access points (APs) are used everywhere at my workplace, and they are all configured by an application called 'Omada'. It's powerful in what it does, letting us tamper with each AP and make necessary changes to how they work as well as how they allow other devices to connect to them. Although Omada does show us if any APs are down, we don't have a clear view of where they are down. To solve this, I developed a solution that would show every AP, represented by circles, in their respective tags that are assigned to them, represented by a container outlining all the APs and showing the tag name and the number of APs inside those tags. Firstly, I need to be able to retrieve all the information on the devices enlisted on Omada and then separate them to only get the APs on the network. I chose to use the Python programming language for this task and created two separate Python files; one for creating the HTML code to show the information I will be grabbing, and another for ma...

'Bean & Brew' Website Design

For me to complete my college course for 'Digital Design and Development', skills in web design and development were needed for the final exam. For this I chose to work on designing a website for a coffee shop called 'Bean & Brew'. The features I managed to implement into this basic design includes: A header and footer than update globally As long as the script exists on a page, a header and footer will exist Can be edited and updates to all pages automatically A home page JavaScript is used to create a functioning carousel of offers, however it only works by the user manually progressing through it with the buttons provided. A menu of items JavaScript is used to display different categories in this menu. An ordering page No functionality, just to show how it could look when working. An offers page A locations page Uses a Google Maps embed to show a marked location. A jobs page A search bar Does not work, scales with the width of the window. Sign in and sign up page...

Developing a 'Printer Toner Tracker' from PaperCut Data

Image
At my workplace, we use 'PaperCut' for our print management system. It's an amazing tool that lets us track all the print jobs taking place on our system, the users that are printing, how much they are spending on print jobs, and allows us to integrate a card system for easy access to user accounts on each printer. On top of this, it also allows us to look into each printer and see how much toner ink is left in them. My team wants to be able to see all of the printers' toner levels on one display, but after some long research and experimentation, there is no easy tool or API access that tends to our needs. Instead, I had come up with a solution that will meet our needs of being able to track every printer and their individual toner ink levels. On PaperCut, there is a button that allows you to download a Comma-separated Values (CSV) file, which takes all the information that would find by going into each printer's interface on the PaperCut website and formats them in...

Scalable grid with input for 'Tic Tac Toe' - In C++

Image
For one of my assignments for my programming module, I have been given the task of creating a 'Tic Tac Toe' game in C++ with many additional improvements and features added to the base to show my range of skills and my creativity. For this program, I have created a function that will display a grid of any size, where the row length is always equal to the column length, and can take in input that will also adapt to the size of the grid. Displaying A Grid Filled With Values  This is a screenshot of the 'DisplayGrid' function. It is responsible for displaying a grid that is been filled in with what the players have inputted previously and will let the players decide their next move. Each line has been commented to explain what they do and what the next lines will be doing. In a quick summary, the function starts off by initialising a variable called 'currentColour', which will store the colour of the current player's symbol to apply to the cell. It then loops t...