{"id":21312022,"url":"https://github.com/richardcyrus/fm-ip-address-tracker","last_synced_at":"2026-05-07T23:05:42.075Z","repository":{"id":96967026,"uuid":"378542545","full_name":"richardcyrus/fm-ip-address-tracker","owner":"richardcyrus","description":"This is a solution to the IP address tracker challenge on Frontend Mentor","archived":false,"fork":false,"pushed_at":"2023-07-04T18:36:37.000Z","size":2519,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-22T09:49:44.914Z","etag":null,"topics":["css-flexbox","css-grid","frontend-mentor","html5","ipify-api","leafletjs","sass","vercel","vercel-serverless","vitejs","vue3"],"latest_commit_sha":null,"homepage":"https://fm-ip-address-tracker-mu.vercel.app","language":"SCSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richardcyrus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-20T02:31:03.000Z","updated_at":"2023-07-02T17:20:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"7b75e52e-2aaa-44a3-b9be-577cb6cb9abe","html_url":"https://github.com/richardcyrus/fm-ip-address-tracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardcyrus%2Ffm-ip-address-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardcyrus%2Ffm-ip-address-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardcyrus%2Ffm-ip-address-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardcyrus%2Ffm-ip-address-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richardcyrus","download_url":"https://codeload.github.com/richardcyrus/fm-ip-address-tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243790944,"owners_count":20348378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css-flexbox","css-grid","frontend-mentor","html5","ipify-api","leafletjs","sass","vercel","vercel-serverless","vitejs","vue3"],"created_at":"2024-11-21T17:23:23.752Z","updated_at":"2026-05-07T23:05:42.048Z","avatar_url":"https://github.com/richardcyrus.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Frontend Mentor - IP address tracker solution\n\nThis is a solution to the [IP address tracker challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/ip-address-tracker-I8-0yYAH0). Frontend Mentor challenges help you improve your coding skills by building realistic projects.\n\n## Table of contents\n\n- [Overview](#overview)\n  - [The challenge](#the-challenge)\n  - [Screenshot](#screenshot)\n  - [Links](#links)\n- [My process](#my-process)\n  - [Built with](#built-with)\n- [What I learned](#what-i-learned)\n  - [Useful resources](#useful-resources)\n- [Author](#author)\n\n## Overview\n\n### The challenge\n\nBuild out an IP Address Tracker app and get it looking as close to the reference design as possible. IP Address locations use the [IP Geolocation API by IPify](https://geo.ipify.org/). The map uses [LeafletJS](https://leafletjs.com/).\n\nUsers should be able to:\n\n- View the optimal layout for each page depending on their device's screen size\n- See hover states for all interactive elements on the page\n- See their own IP address on the map on the initial page load\n- Search for any IP addresses or domains and see the key information and location\n\n### Screenshot\n\n- [Mobile](./design/screenshots/mobile-screenshot.png)\n- [Desktop](./design/screenshots/desktop-screenshot.png)\n\n#### Reference Design\n\n- [Mobile](./design/reference/mobile-design.jpg)\n- [Destop](./design/reference/desktop-design.jpg)\n- [Active states](./design/reference/active-states.jpg)\n\n### Links\n\n- [Solution URL](https://www.frontendmentor.io/solutions/ip-address-tracker-vue-3-NIRkX4lYu)\n- [Live Site URL](https://fm-ip-address-tracker-mu.vercel.app/)\n\n\n## My process\n\n### Built with\n\n- Semantic HTML5 markup\n- CSS custom properties\n- Flexbox\n- CSS Grid\n- Mobile-first workflow\n\n### What I learned\n\n- How to create a Vercel Serverless function. This allows me to keep from exposing the IPify API credentials in my JavaScript code.\n\n### Useful resources\n\n- [A Modern CSS Reset](https://piccalil.li/blog/a-modern-css-reset/)\n- [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)\n- [A Complete Guide to Grid](https://css-tricks.com/snippets/css/complete-guide-grid/)\n- [Serverless Functions on Vercel](https://blog.iamsainikhil.com/article/serverless-functions-vercel)\n- [Make a Simple API Endpoint with Vercel Serverless Functions](https://scottspence.com/2020/12/27/make-a-simple-api-endpoint-with-vercel/)\n- [CSS in Action: Invisible Content Just for Screen Reader Users](https://webaim.org/techniques/css/invisiblecontent/)\n- [Vue 3 CRUD example with Axios \u0026 Vue Router](https://bezkoder.com/vue-3-crud/)\n- [Building an interactive map with Vue and Leaflet](https://blog.logrocket.com/building-an-interactive-map-with-vue-and-leaflet/)\n- [Serverless Functions on Vercel](https://blog.iamsainikhil.com/article/serverless-functions-vercel)\n- [Using Vite On Vercel](https://t3.gg/blog/posts/vite-vercel)\n\n## Author\n\n- Website - [www.richardcyrus.com](https://www.richardcyrus.com)\n- Frontend Mentor - [@richardcyrus](https://www.frontendmentor.io/profile/richardcyrus)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardcyrus%2Ffm-ip-address-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichardcyrus%2Ffm-ip-address-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardcyrus%2Ffm-ip-address-tracker/lists"}