Giter Club home page Giter Club logo

realyzer's Introduction

Realyzer

Multi-Variable Calculator for Real Estate Investors

"An investment analytics tool helping users gain insights through property analysis, dynamically sourced tax rates, and a custom, comprehensive mortgage calculator"

Live | GitHub

Project Brief:

Custom web application created for Real Estate Professionals

Timeline:

86 Hours Total

Role / Skills:

Lead Developer

Technologies Used:

  • React
  • Redux
  • JavaScript
  • Next.js
  • CSS
  • Mapbox API
  • Cheerio.js
  • Single Page Application

Realyzer:

  • Provides a clean and simple-to-use interface that keeps the user focused on gaining their insights. Designed in collaboration with a Full-Stack Product Designer
  • Eliminates the need to visit external web sites and tools for property tax or mortgage calculations
  • Provides the user with an optional, clean and simple PDF report of their property analysis

Project Summary:

This application was created to help real estate investors and professionals analyze residential and commercial properties, providing metrics in order to determine profitability. It analyzes and assesses any given property's net operating income and cash-on-cash return based on the property's value (the purchase price), down payment, the potential rental income, and the overall expenses of the property, including mortgage payments, property taxes, property insurance, and more.

  • Responsive analysis tool designed for real estate investors to determine a rental property's profitability
  • Retrieved average Property Tax rates from 50 different U.S. states using Cheerio.js, providing users with calculated Property Tax estimates
  • Built-in custom multi-variable mortgage calculator
  • PDF page populated with user-inputted data to save/print a PDF copy of their calculated report
  • Utilized Mapbox's Geocoding API to determine the X-Y coordinates from a given property address in order to select the appropriate Property Tax rates and to generate a map marker of the actual property

Challenges Faced:

Mapbox's Geocoding API to Retrieve Coordinates From a Given Property Address

Using the property address the user inputs into the "Property Address" input field, that address is then dispatched to the global Redux state to be stored. The address is then used in conjunction with the Mapbox Geocoding API to retrieve the coordinates based off the address. With the response data, the U.S. state name (e.g. Alabama) from that data is used to query the previously scraped property tax data from an external source to determine the average property tax rate for that particular state. The same coordinates are also used to place the map marker directly on the home address of the property for the user's convenience.

Rendering Image Previews of Multiple User-Uploaded Property Photos

Using an input element with attributes type="file" and multiple , users can upload multiple property photos at once. These files are then processed and converted into individual image URLs using URL.createObjectURL() in order to be rendered into actual img elements right next to the input element to be previewed by the user, as well as rendered onto the PDF report page.

  

// To render preview of user-uploaded property photos const fileObj = []; const fileArr = [];

const uploadPropertyPhotos = e => { fileObj.push(e.target.files); for (let i = 0; i < fileObj[0].length; i++) { fileArr.push(URL.createObjectURL(fileObj[0][i])) } const { name } = e.target; dispatch(changeValue(fileArr, name)) }

Mortgage Calculation Formula

For the mortgage calculation, the key variables to keep track of were the Property Value, the user's Down Payment Percentage (e.g. 20% down), the Interest Rate (e.g. 4%), and the Length of the Loan (e.g. 30 years). These numbers were then plugged into a complex mortgage calculation formula to determine the user's monthly mortgage payment. The user then has the freedom to adjust the Down Payment and Interest Rate via range inputs to dynamically adjust the monthly payments.

    
Mortgage calculation formula:
  M = P [ r(1 + r)^n ] / [ (1 + r)^n – 1]
    P = The Principal loan amount
    r = Monthly Interest Rate
    n = Number of months required to repay the loan
    
  

realyzer's People

Contributors

dependabot[bot] avatar stanjdev avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

peterza2019

realyzer's Issues

PDF page decision: direct to results page, OR, open results page in new tab pros/cons. DECIDED DIRECT TO RESULTS PAGE

  • print doc. not great. headings. laid out cleaner. like:

  • look at final deliverables from RE companies. roofstock.
    https://docs.google.com/spreadsheets/d/10no9MlsV-tpAMwIYLHlZEPv74DxvwIhzU0eixpJYXpM/edit#gid=1267896996
    https://renttoretirement.com/full-inventory-list15/ - compare to these simple ones, make sure it's all there

  • DealCrunch pdf: property photos, map photo, simple calculations, NO 30 year projects in equity, cash flow, sales comparables in the area, valuation, or property description. Only CoC calculations.

  • reference screenshots and actual calc! - like BP's layout

  • norada

  • other turn keys,

  • Zillow's mortgage calculator (Principal & Interest calculator)

  • summary should be up top, income, NOI, CoC

  • keep my brand logo on bottom left or right of PDF page, as well as URL - ON EVERY PAGE. Also, page 1 of 4

  • drag multiple photos upload, load them on the side and last page of PDF

  • rogue marker on map in PDF view.

Persist data when refreshing tool

don’t lose data on refresh. "sessionstorage is not defined nextjs redux" sessionStorage is a Browser thing. so you get this warning on the server-side because the browser isn't mounted yet on refresh. It works localhost-wise, but may crash my server on deploy. Just a note.

Domain name, unique content pages, then Traffic

  • Separate pages, unique content - use next.js template [id].js blog post way! At least for glossary or a simple page like about
  • About page
  • How to Use Page
  • FAQ - BELOW COMMENT https://ubersuggest.com
  • glossary terms definitions page https://www.mynd.co/rental-return-calculator
  • examples of what are good or bad investments. on realyzer page. diff. page. here's a good deal, but maybe to make it a better deal, etc.
  • Affiliates page? with amazon books?
  • Agents page, include GB about, link to his site,
  • blogs post pages
  • email newsletter form - whenever new links, affiliate links, anything I make.
  • make a Pdf guide on how to use Realyzer - then use as an opt in bribe. or put only form on there now. offer them something to give me their email. then eventually sell $500 expert sessions with GB, 1000 true fans style. https://www.mynd.co/rental-return-calculator
  • Secure a domain name
  • Google Adsense ads: resubmit for review after unique pages added

Traffic methods:

  • share youtube vid and links to reddit, etc
  • Reddit subs
  • Pushpodcast Twitter, “attention podcasters interested in real estate! Use rental property calculator”
  • Commenting on ig on bp posts, similar
  • tiktok. plug my calc. guys, you gotta use this tool! sharing a tool. sharing useful tools

DONE:

  • Search for "adsense vercel, GH pages Netlify if allowed?"
  • set up paypal donate button or similar

Separate pages, unique content, Google Adsense ads

Search for "adsense vercel, GH pages Netlify if allowed?"

  • Finish site, slap domain onto it
  • wait for approval of the site on adsense, add all necessary code into files
  • set up paypal donate button or similar

CASE STUDY

  • Product points in resume
  • Realyzer gif for projects page. light mode dark mode toggle, use the app, scroll down input, etc.
  • README file for Realyzer Repo

call notes

RE analyzer

  • get rid of illustration in dark mode. realyzer

  • how to drive traffic? "how to SEO, keywords, organic??"

  • screenshots!

  • squeeze Monthly select options for property taxes and insurance into the actual price.

  • maybe just sticky of CoC on the bottom. (for mobile view)

  • red icons change to. transparent background instead of red.

  • mortgage cacluationr, option for calculated result. and separate for them to input their own??? Just keep the calculator only.

  • electricity/ month, etc. gas. per month.

Minor tweaks:

  • “Choose file“ cut off.
  • MLS and Address inputs wider on desktop. longer. see the entire address.
  • NaN change it .

PDF:

  • don’t lose data on refresh. "sessionstorage is not defined nextjs redux" sessionStorage is a Browser thing. so you get this warning on the server-side because the browser isn't mounted yet on refresh. It works localhost-wise, but may crash my server on deploy. Just a note.

  • vertical, have numbers close to the label. vertical PDF reads more like balance sheet. go with that. - dealcrunch one

  • have it so the results look actually like PDF dimensions with the margins. because it’s too stretched out. AND have it look the same as in print dialog. max-width on id=results 900px.

  • pdf logo - scale down. max-width:

  • get rid of borders for mobile.

  • range input sliders, where’d the blue go?

  • upfront repairs - percent of home value. also get rid of e.g. t% typical. it can be whatever the rehabber says.

  • tech start up name. loop net, redfin dealio. realio. Redealio. Realyzer, Dealyzer

Calculation - Property Taxes avg per state, & Insurance

“how are property taxes calculated in this state?” there might be formula, or flat rate. “average property taxes % in this state.” best would be average. average % of that state. https://wallethub.com/edu/states-with-the-highest-and-lowest-property-taxes/11585
median.
You’ll get smartasset.com in google results

  • Also 1.25% CA property tax purchase price popup info

  • property tax. and insurance. no idea what to input. as a user. stumped. calculate them??? info??? - also what to do with property tax and insurance? Always assume user has that info, or custom calculator for both of them? yes. notes below.

  • calculated suggested inputs auto in the inputs, and then editable. and doesn’t fuck up the numbers. for both pros and noobs. kind of like my old monthly mortgage input

Property taxes calc.
based on address. based on state, avg on state. % of purchase price. (detect the state) - mapbox or google maps?

  • see figma design - “average estimate from 2020 based on Florida” "avg. 1.25% based on "

make a spreadsheet or some database- volatile, census bureau. zillow gets it from public resource. some official government site. maybe state sites. compiled.

National average 1.08% - 1.37%
Lowest: Hawaii | 0.32%
Highest: New Jersey | 2.31%

  • range slide (input your own percentage) with a subtag saying US average is blah from blah. highest NJ, lowest HI. tell them to DIY. - Keeping the embedding info table - toggling it open and closed for them to see, or maybe a popup modal (but branding...)

  • spreadsheet import, then have it auto populate into redux store? for avg calculation

  • scraping would be most difficult and one change in the dataset and cause it to all not work.

  • import key value pairs manually into redux store, state abbr (CA) and 0.0077 rate for example. for avg calc. but I would have to update manually if laws change etc.

  • Insurance

  • https://www.insurance.com/home-and-renters-insurance/home-insurance-basics/average-homeowners-insurance-rates-by-state

Standard 5% (OR maybe he meant 0.5% ?) of purchase price. Brandon turner says.
$0.50 per square foot. GB, pros say
state by state differ. flooded, tornados

$1,200 annual average for insurance in CA.
$1,400 / US average. based on national avg of.

starting at $23/month up to $80/month
$100/month as national average.

Optimize, componentize

  • Components for resultsPDF and results page, reoccurring text components, small pieces, etc.

  • separate CSS files per component

Mortgage Calculation

Auto populate mortgage zillow, bank rate, scraper. headless browser. SCRAPING METHOD
OR
just fixed rate inputs for 4%, 30 year, etc. simple.

Mobile issues:

  • light mode button and print button stay dark and barely visible in dark mode. not good UX
  • margins of results on bottom and on print page weird, maybe that 90vw thing, fix it

fetch requesting every single type of address, because listening on global.address change. Need something more optimal

  • get map queried from onChange of address input

Attempting to get forward geocoding marker via "Places" query https://docs.mapbox.com/mapbox-gl-js/example/marker-from-geocode/

install mapboxSDK: https://github.com/mapbox/mapbox-sdk-js
- also make sure and CSS stylesheet are all added!!

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.