Kitan García

Coming soon...

View my portfolio by clicking the folder icon on the left

Coming soon...

Here, I will write more about my interests outside of engineering

View my portfolio by clicking the folder icon on the left


Find details and locations of artworks by snapping a picture them, display them on an interactive map, and save them to a gallery

Leveraged a series of APIs in concert to bring the idea to life. Upon taking a photo on the cellphone, the artwork is identified by Google Vision API. The output of Google Vision is passed to MediaWiki API which returns the artist, year, medium, description, museum, etc. of the artwork and is presented to the user. The museum from MediaWiki is passed to Google's Geolocation API which returns its latitude and longitude coordinates, so a marker can be placed at that point in a React Native Map. This was all persisted on a MongoDB database. Additionally, user login is handled by Facebook OAuth 2.0, Twitter Oauth, or by traditional means. Each user has their own saved gallery of artworks they've photographed, complete with their details as demonstrated above, a map with each of the artworks locations, and a score incremented when they've taken a picture

Built with: React Native, Express, MongoDB


A real-time collaborative document editor for multiple users

An electron application that allows simultaneous collaborative editing of word documents. Multiple users can register accounts, log in, and create or contribute to documents with any changes being successfully persisted. Material UI buttons are used to trigger changes in document editing/style. Draft.js is used to handle the rich text formatting, such as the ability to adjust alignment and change color, font, style, size, and so on. These details are stored in a MongoDB database so they can be successfully retrieved and editing can be resumed at a later time. Documents have a unique ID and link so that users can share them and authors can grant or remove editing privileges. Lastly, version history is maintained, so any saved version of the documented can be revisited and edited.

Built with: Electron, React, Express, MongoDB


Measuring social media behavior between tech-savvy and non-savvy users

Two social media websites built for an experiment for a researcher writing her dissertation exploring social media behavior. Both versions contained the ability to add friends, make posts with text, images, or videos, profile pages for each user, a home page showing any recent posts by friends, several customizable options, and an adminstrator page for the client to monitor. One website was made specifically for tech-illiterate users and emphasized ease of use, clear navigation, and also accessibility. It had enhanced magnification features, speech to text input, and a painfully obvious flow. The second site was made for younger, tech-savvy individuals and had all the polished UI with all the bells and whistles and functionality of most current social media websites, as well as advertisements.

Built with: Ruby on Rails, JavaScript, AWS, HTML, CSS


Create or join pick-up sports games near you in a flash

With only a few taps, create a pickup game for your favorite sport. After selecting the sport, state the start time (or use the current time), location (or use the current location), and forecasted duration if applicable. Next, the pick up game will be broadcasted for all users to see and join! Alternatively, instead of creating a game, simply tap to view the map full of games around you! Games can can be sorted by sport and their start times are displayed so you can easily decide which one to join. This app was designed to be as simple and quick as possible so you can play sports with others in an instant.

Built with: React Native, Express, MongoDB

Slack Scheduler

Schedule events and get reminders on Slack with a bot syncing directly with your Calendar

A Slack bot that synchronizes with the users Google Calendar. It has the ability to schedule meetings at a certain time between different people, issue reminders, and list calendar items. It was trained using DialogFlow so that the intent of the user could be identified and the bot's appropriate response could be issued. The input given to the bot is generally through a chat, as is with most Slack bots and support for buttons in response to the bots, such as for a poll, was implemented. Login was through Google OAuth to allow easy connection to Google Calendar.

Built with: Node, Express, DialogFlow, MongoDB

Coronavirus Map

Visualize the coronavirus toll on an interactive map

This map was built with React and a preexisting leaflet. The interactive map presents markers on each country that summarize its coronavirus statistics. When the markers are hovered over, they expand to detail the country's total confirmed cases, deaths, number of patients recovered, and the time this information was last updated. To supply the user with this info, a simple get request is issued clientside.

Built with: React, Gatsby, Leaflet