Giter Club home page Giter Club logo

lfost42 / franchise Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 33.3 MB

Evaluates the coverage health of a franchise by determining which locations (in a provided csv file) are farthest apart. Uses Kruskal's minimum spanning tree algorithm to filter pairs of locations that can pass through other locations.

C# 61.73% HTML 9.31% CSS 28.85% JavaScript 0.11%
csharp csv-parsing geolocation tdd unit-testing xunit-tests data-access-object-pattern logging aspnetcoremvc mapping

franchise's Introduction

Franchise Analytics

Evaluates the coverage health of a franchise by determining which locations (in a provided csv file) are farthest apart. Suggests areas that may need expansion or more coverage.

https://lfost42-franchise.herokuapp.com

My App

WALKTHROUGH

Minimal Viable Product:

A console application that parses through the provided csv file, calculates the locations that are farthest apart, and writes the result to the console.

OTHER FEATURES:

Completed:

  • Build a Class Library and move methods into classes.
  • Implement DAO (Data Access Object) to decouple the data access layer from the user interface.
  • Swap the UI and develop an ASP.NET Core MVC web application.
  • Make algorithm onclick.
  • Develop front-end
  • Add mapping for all locations.
  • Display locations and analysis results on a map.
  • Create a dictionary and appropriate crud methods.
  • Scaffold the Minimum Spanning Tree models and control classes.

Current Issue:

  • Mapping the locations revealed our algorithm needs to exclude locations that can connect through other locations. To fix this we need the following:
  • Build a distance matrix to load to enable GraphControl to implement the MST algorithm.
  • Extract 10 of the longest edges and evaluate the locations on a map.

Future Updates:

  • Option to export analysis
  • Add a dashboard

DASHBOARD

  • Number locations in file.
  • Average distance between each location.
  • Mean distance between each location.
  • Heatmap of distance variations within dataset.
  • Top 5 pairs of locations that are farthest apart from each other.
  • Option to export dashboard results.

OPEN REQUIREMENTS

DASHBOARD

  • Number locations in file.
  • Average distance between each location.
  • Mean distance between each location.
  • Top 5 pairs of locations that are farthest apart from each other.
  • Option to export dashboard results.

USER INTERFACE

  • Landing page
  • Options to run algorithm on full or filtered list (or both, different color indicators for map)

LOGIC DESIGN

  • csv parsing
  • mapping API
  • statistical charts

DATA DESIGN

  • location (object with latitude, longitude, name)

  • locations --> list of locations

  • distances - caching/csv output?

  • data access - locates CSV

  • parsing - parses through CSV list (or filtered list)

Origins

The project's minimal viable product culminated the C# segment of the Software Engineering course at True Coders (https://truecoders.io). We were to parse a csv file of approximately 300 Taco Bell locations and determine which two were farthest apart from one another.

franchise's People

Contributors

lfost42 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

pjschmidt3

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.