Giter Club home page Giter Club logo

ip-address-tracker-challenge's Introduction

IP address tracker solution

This is a solution for the Front-end Engineer Job application at Arkantum Labs.

Overview

The challenge

Users should be able to:

  • View the optimal layout for each page depending on their device's screen size
  • See hover states for all interactive elements on the page
  • See their own IP address on the map on the initial page load
  • Search for any IP addresses or domains and see the key information and location

Screenshot

IP Address Tracker

Links

My process

Built with

  • Semantic HTML5 markup
  • CSS custom properties / CSS Modules.
  • Flexbox
  • Mobile-first workflow
  • Separation of Concerns (UI / Services)
  • React - JS library (Create React App)
  • Ipify
  • Leaflet
  • Vercel - Deployment
  • Eslint
  • Prittier

Eslint and Prittier configuration files are not removed from the repo for you to see my development configuration.

Showcase

Use this section to recap over some of your best and proudest solutions while working through this project.

To see how you can add code snippets, see below:

export const getLocationDataFromIp = async (ipOrDomain, { type = IP } = {}) => {
  try {
    let sanatizedIpOrDomain = ipOrDomain;

    if (type === IP && ipOrDomain) {
      sanatizedIpOrDomain = getIpWithDots(ipOrDomain);
    }

    if (type === DOMAIN && ipOrDomain) {
      sanatizedIpOrDomain = getSanatizedDomain(ipOrDomain);
    }

    let params = {
      apiKey: config.ipifyKey,
      ipAddress: sanatizedIpOrDomain,
    };

    if (type === IP && !ipOrDomain) {
      delete params.ipAddress;
    }

    if (type !== IP) {
      params = {
        apiKey: config.ipifyKey,
        domain: sanatizedIpOrDomain,
      };
    }

    const response = await axiosIpify.get('', { params });

    return { locationObject: response.data };
  } catch (error) {
    console.error('Error fetching location data:', error);

    return { isError: true };
  }
};

I'm proud of the above function. The function is fetching the data as an ip or domain, automatically, according to some parameters.

Potential improvements

I could've improved the way in which I structured the CSS, specially giving a detailed consideration to the globals CSS. As I were building the project, I've put some globals in there, but then I override some colors in the components modules.

Author

  • Santiago Pablo Ortiz.

ip-address-tracker-challenge's People

Contributors

sportiz91 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.