/solar

Primary LanguageJavaScript

Solar Panel Installation Planner (SPIP)                 HMC CS121 Spring 2009

0. Authors

Samuel Just
Marquis Wang
Dmitriy Yakovlev

0.5. Requirements

Django 1.0.1+ 
Apache 2.0+ with mod_wsgi
MySQL5 or postgreSQL database

1. Code Layout

SPIP consists of a single form, the results of which are processed and then
 displayed on an output page. Due to the way Django works, the code that
 supports all of this is distributed among many different files. This reference
 outlines the total code that runs the specific project, not Django in general. 

solar2009/
    django.wsgi : configuration file for Django
    monitor.py : fix for a caching issue. 

solar2009/docs/
    contains project documentation
    
solar2009/resources/
    contains the outside source files we used in this project. See External
    Resources section for a detailed breakdown of contents.

solar2009/solar/
    settings.py : Django project settings
    urls.py : Django rewrite rules for form locations

solar2009/solar/media/
    contains directories css/ and js/, which hold the css and js used by SPIP

solar2009/solar/payback_calc/
    payback_lib.py : support library for view that calculates the projection
    formdef.py : definitions for the input form subsections
    hostip.py : support library for ip-location database
    models.py : Django-generated file that defines database access functions
    srlocat_wrapper.py : wrapper for SRLOCAT.F, for calculating insolation data
    views.py : functions for generating the input form and response page
    
solar2009/solar/templates/payback_calc/
    base.html : template-template, defines outline that other templates extend
    error.html : template for errors 
    index.html : template that defines the way the input form view looks
    response.html : template that defines the way the response view looks
    
2. External Resources 

(in solar2009/resources)

2007avgprices.txt
    Average state electricity prices for 2007.  
    Retrieved from _____
    
22yr_swv_dwn.gz/txt
    Empirical insolation data from NASA SSE
    Retrieved from http://eosweb.larc.nasa.gov/sse/
    
hostip_current.sql.tar.gz
    ip geolocation database, maps IPs to latitude and longitude information.
    Retrieved from http://www.hostip.info/

SRLOCAT.F
    Purely geometry-based insolation calculator in Fortran. 
    Retrieved from http://aom.giss.nasa.gov/srlocat.html
    
zipcode.sql
    zip code <--> lat/long database <--> city, state information
    Retrieved from http://scripts.ringsworld.com/calculators/zipcode-1.1.0
    
(in solar2009/solar/media/js)

jquery*.js
    jQuery, general effects library and framework
    
jscharts.js
    jsCharts, chart creation library
    
livevalidation*.js
    LiveValidation, clientside form validation library
    
facebox.js
    Facebox, lightweight modal box library
    
3. Roadmap for the Future

Some things that we did not have time to get accomplished:
- a second graph showing the value of electricity that we generate as it changes
- a database of average panel prices (perhaps per kw generated) so that the
  installation cost can be estimated if it is not known
- better organization and integration of advanced form fields with the rest of
  the form
- HTML, CSS, JS validation of the codebase
- print stylesheet that removes graphical markup from results
- more statistical data and details in the results 
- http://www.solar-estimate.org/pdfs/solar_payback.pdf <- read this document and
  fix our model so that it is somewhat accurate and follows the ideas featured
  in here
- third graph that shows the average amount made per month, compared to paid 
  (showing deficit or excess due to buyback rates)