Giter Club home page Giter Club logo

weatherimport's Introduction

Weather Import

Technical Test for Theta Internship

Approach

I built a C# Console App in Visual Studio 2017. The .sln file is also available on the GitHub repo.

After looking at the data, it was noted that while only 3 data points were important for the task, there was also an indication that this would become part of a larger and more regular file import. As a result, a decision was to create an app with the following structure:

  • Program class to run the application
  • Controller class to facilitate file loading and displaying of the functional outputs to the Console
  • A Day class to manage the import of the Day data and to hold the data points
  • A Month class to manage the import of the Monthly data, to hold all the days and some functions

Assumptions

  • Column lengths would always remain the same
  • 3 data columns could contain blank or null values, so an assumption was made that this could occur in any column - all int and double values use the Nullable<T> type
  • Some assumptions were made about what the saved data types should be (double vs int vs string)
  • Data points for the Month fields (averages vs. sums)
  • 3 columns had one data point with a star - an assumption was made that these represented either the highest or lowest values in those columns for the month - this was stored as a boolean

Issues

Initially had issues accessing the file from the root directory; however, this was fixed by updating the file's properties. I am not sure if this will carryover to GitHub, so please let me know if there are any issues.

Running the application

The application will load the file and confirm the month and number of days. It will then display the day with the minimum difference in temperature (should be June 14th). Then, as an extra exercise, it will display all the days with HDDay data to show that other data has loaded successfully, and null values handled.

Theoretical Next Steps

  • Confirm with the client which columns should never contain null data.
  • Confirm the data types are correct - are there any that need changing?
  • Confirm the meaning behind the column headers - update field names where appropriate
  • Request test data from other months
  • Confirm other required functions, including user input

weatherimport's People

Contributors

magneticregulus avatar

Watchers

James Cloos avatar  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.