GithubHelp home page GithubHelp logo

edozo's Introduction

This application stores property transactions (sale and lease).
Each agency sends to us a csv file with the all the transactions they handled.

Provided is a prototype application to implement our solution.

SETUP:
run `bundle install` in the main directory

SPECS:
Please review specs in spec directory.
To run specs, use `rspec`

TASK:
There is a number of specs already prepared for you. Some are failing but most are not implemented.

You need to implement 2 classes:
1. CsvImport 
  - accepts the csv file and agency name and inserts the transaction and associated records into the database
2. Search 
  - takes different parameters and returns transaction data

The application already has a database set up - see `support/db_setup.rb`


NOTES:
- Do not spend more than 3 hours on this task, if any of the specs are problematic, describe the problem and move to the next one.
- There is probably not enough time to implement everything. Please focus on what feels important, but try to do some work in both search and import module.
- Please commit your work regularly.
- Feel free to modify setup code if it helps, but please focus on the task at hand.
- There is no need to implement any Rails endpoints etc - we want to focus on the behavior of import and search.
- You can add your own specs to help you with the implementations
- If time allows, you can expand on specification and introduce other functionality you feel would be useful.

DISCUSSION POINTS:
Let's imagine we want to launch it as Rails application provides an API with search:
- could you use this code. What would have to change?
- instead of importing CSV, our clients will upload it to their dropbox account. How would we implement that?
Nearby properties should be found by distance (ie in radius of 1 mile) instead of by postcode.
- How would you approach it?
We have decided to change the storage from sqlite to MongoDB
- Which parts of your code will be reused and which can change?
Could you model the database differently? What would you change?

edozo's People

Contributors

socfoot avatar homologist 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.