Full-stack web development for a children's STEM education franchisee
Tap or Click to open
Multiplayer Statistics Dashboard Website for Battle for Wesnoth
Tap or Click to open
Full-stack cross-platform mobile app development for Mapa Web Development
Tap or Click to open
Desktop application for printing out cards in Tabletop Simulator
Tap or Click to open
Data Visualization for Pazito's Time Tracker
About
Data-driven
I consider myself a strategic and analytical person. I prefer to make decisions that are informed by data. When I receive information, I like to contextualize it in terms of where it came from and its degree of uncertainty.
Independent
I am capable of diving into documentation on my own and figuring out how to use new things. I am also capable of working on my own without needing to be micromanaged.
Caring
I believe that innovation only thrives when people feel like they are respected and cared for. People who feel like they do not belong will not share their ideas, or may not even bother to come up with any.
I joined Mapa Web Development (MWD) as a Software Developer, tasked with providing expertise across various aspects of software development. During my nine-month tenure, together with one other junior software developer, we accomplished the development of a mobile app called
Park King,
which allows users to book parking slots for events such as concerts and conferences, from inception to successful deployment.
Technologies Used
Flutter
Flask
DragonPay
Firebase
GitLab
Docker
Google Cloud Run
Details
Collaborated closely with a fellow software developer, who was new to the role, to develop a mobile app. We utilized Flutter for the mobile client, Python Flask for the back end, used DragonPay for payment processing, Firebase for authentication, and Firestore for the database.
Provided all the necessary requirements for successful acceptance and deployment of the app to the Google Play Store and Apple App Store
Orchestrated the setup of separate local, development, and production environments for controlled development and testing processes
Implemented CI/CD pipelines using GitLab and Docker for the back-end services, achieving high test code coverage and detailed documentation
Managed Google Cloud infrastructure, ensuring cost efficiency, permissions, and security measures
Data Visualization for Pazito's Time Tracker
I added a "Visualize Data" feature to a time tracking app called Time Tracker.
Sample output of the chart that shows time tracked per day. Click to view full size.Sample output of the chart that shows time tracked per project. Click to view full size.
GitHub Pull Request
Technologies Used
pandas
Plotly
PyQt
Details
The "Visualize Data" option was added to the app's menu bar, which was coded using PyQt.
The app data was processed using pandas to make it suitable for plotting.
The charts were created using Plotly.
Multiplayer Statistics Dashboard Website for Battle for Wesnoth
I created a dashboard web application for The Battle for Wesnoth, a free turn-based strategy game.
I identified that there was an opportunity to create a dashboard after I saw that there was a monthly
Multiplayer Activity Report
that was being manually prepared and released.
I created a proof-of-concept for the Wesnoth organization to interact with before they decided to officially adopt my dashboard.
I communicated with other developers to get access to the database and other data I needed, to setup and deploy to development and production environments, to ask for code reviews, and to address comments and requested changes.
I wrote clear documentation to enable other developers to understand and run the app without having to ask me personally for all the steps in the process. I included links to the official documentation for the various technologies and libraries used by the application.
I wrote tests to help ensure quality and possibly serve as a secondary form of documentation.
Algorithmics and ANALI Bacolod
I developed a web application for a franchisee of ANALI and Algorithmics, both children's STEM education platforms, to facilitate registrations for Introductory Lessons and Assessments.
Technologies Used
Figma
Flask
App Engine
Identity-Aware Proxy
Firestore
Bootstrap
Details
At the beginning, I created a mockup using Figma to set expectations with the client and make sure we were on the same page.
There was no infrastructure or anything in place when I began, so I really had to go fullstack and set everything up from scratch. Within Google Cloud, I carefully selected a cloud solution that would not incur regular costs for the client.
I used App Engine for hosting, Identity-Aware Proxy for authentication, and Firestore for the database. I made sure the client understood basics of how to manage the infrastructure of the application, such as how to go into the Google Cloud and Firebase Consoles to view settings and data.
The usage of Flask allowed me to easily integrate the development of the backend and frontend, especially with the tools in its ecosystem like Jinja and WTForms.
As a solo dev, Bootstrap was great in saving me time ensuring the front end was responsive and aesthetically pleasing.
I made two variants of the application, the difference being the color scheme and some of the words used, to match the two different brands, Algorithmics and ANALI, of the client.
The forms employ client-side and server-side validation and protection against cross-site request forgery.
The web application has pages that give feedback such as error pages and success pages.
The web application has functionality for the client to view and download the data of the registrations.
TTS Cards
I created a desktop GUI application called TTS Cards that allows you to convert cards in Tabletop Simulator, a digital platform for creating and playing board games and card games, into printable PDFs. Perfect for print and play of fanmade content and expansions, as well as for boardgame developers making prototypes, or for making proxies.
I used TkInter for the GUI and Pillow for image processing.
From consulting online and looking at the Tabletop Simulator object files, I was able to determine the format of the files and how to extract the card images. I employ recursive search to find all the cards in the object files.
I made the app behave properly on the PC operating system, such as by saving the output files in the user's documents folder, and having a proper setup to have the app installed in the correct directories.
Submarine
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.