GithubHelp home page GithubHelp logo

18f / afsbirez Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 13.0 5.86 MB

(Inactive) The SBIR-EZ project, whose goal is to simplify the process of participating in the Small Business Innovation Research Program

License: Other

Ruby 0.13% Shell 0.11% PLpgSQL 0.02% Python 31.88% JavaScript 37.26% CSS 6.59% HTML 14.46% API Blueprint 4.56% Jupyter Notebook 4.99%

afsbirez's Introduction

SBIR-EZ

Build Status

The SBIR-EZ (sih-bur-easy)project, provides a web service and user interface abstraction over the Small Business Innovation Research Program suite of tools used by SBIR.gov, DoDSBIR.com and various agency tools. The intent is that users may have a uniform interface to:

  • Research existing and past SBIR solicitations
  • Save opportunities for later processing
  • Apply to opportunities independently of the owning agency
  • Track the status of applications
  • Receive and send communications
  • View benchmarks

Please file issues at the central repository for all Air Force Small Business repo

Installation

  • Install Postgresql
  • Install Python 3.4.1
  • Install pip
  • Install virtualenv
$ git clone https://github.com/18F/afsbirez.git
$ cd afsbirez
  • Make a virtualenv

The directory hosting the virtualenv can be anywhere you want; keeping it here within the afsbirez directory aids in clarity.

$ mkdir env
$ virtualenv-3.4 ./env
  • Activate the virtualenv
$ source env/bin/activate
  • Install project requirements
$ pip install -r requirements.txt

You should now see (env) on your command prompt:

$ (env)[afsbirez]
  • Install the latest Node.js

  • Update NPM to the latest version

$ npm install npm -g
  • Install the bower command line clients, as well as the karma test runner.
$ npm install
  • install client side dependencies via bower
$ bower install

Configure the database

Check your pg_hba.conf file on your system to allow local connections without passwords. pg_hba.conf location varies from system to system; to find yours, you can use

psql -t -P format=unaligned -c 'show hba_file' template1

Your hba.conf should have the following lines already in place:

local   all             all                                     trust
host    all             all             127.0.0.1/32            trust

Create a database and role with your system user name

$ psql -c "create user afsbirez with superuser password 'afsbirez';" -U postgres
$ psql -c 'CREATE DATABASE afsbirez WITH OWNER afsbirez;' -U postgres

Create the database tables on 'afsbirez'

$ python manage.py syncdb

Running the Server using the Werkzeug built-in run_simple WSGI server. Please note that this is for

development only.

$ python manage.py runserver

Running Python Tests

$ python manage.py test

Running Javascript Tests

Install Karma globally

npm install -g karma-cli

Run tests

karma start

Run tests in multiple browsers

karma start --browsers Firefox,Chrome

License: Public Domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

afsbirez's People

Contributors

annalee avatar catherinedevlin avatar davidebest avatar dwcaraway avatar jmcarp avatar kaitlin avatar konklone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

afsbirez's Issues

Phone number validation too strict?

As of commit 58af3, for field's like principal investigator's Phone, validation doesn't permit variations like

  • country code (arguably unwanted for Federal work anyway - opinions?)
  • phone extension

This looks small enough that it would probably be a good way for me to ramp toward being useful on the front-end code, so I'm going to assign myself.

A user should be able to navigate through pages of search results

The ux for this is a bit wonky, regardless of whether or not they use a keyboard:

  • We should return users to the top of the page after clicking "next"
  • We should specify what results are being shown at the top of the page (for example: 11-20 of 52)
  • We should programmatically assign focus for screenreaders to the top of this set of results.
  • We should update the URL bar so users can share a specific page of results.

I can craft some nicer header styles for displaying the currently displayed results alongside the header

Add in new CI

We migrated off of Travis and needed to remove the config. Add in new CI if development restarts.

Discretionary Technical Assistance asked redundantly?

"Proposal Information asks"

"Does the proposed cost include Discretionary Technical Assistance (DTA)? " / "If yes, what is the proposed DTA amount"

(cost_includes_dta_yn, dta_amount)

... which feels annoyingly redundant with "Discretionary Technical Assistance" on the Totals page (discretionary_technical_assistance)

Should we auto-fill one from the other? verifty that they match during validation? Remove one from the workflow? None of the above?

DCAA audit - accepts both a date and "never performed"

As of commit 58af3, on the Business Information page, "If no, please provide the date for when such a review was last performed" will accept a text answer AND a check in "never performed" without complaining in on-page or final validation.

There's also no date validation on the "when review was performed" but that might be a good thing, to permit answers like "Unknown", "Promised for next year", "In times of yore when giants walked the earth", etc. Opinions?

This looks small enough that it would probably be a good way for me to ramp toward being useful on the front-end code, so I'm going to assign myself.

Change name of application from `afbirez` to `afsbirez`

Issue

There is currently inconsistency between naming conventions on the app. We currently have the name set to afbirez but the application is referred to afsbirez in other avenues.

Fix
Change the name of the application and other files that (e.g. settings/) that point to that path.

"No" questions for dcaa_review are asked if "Yes"

(on version at sbirez.18f.gov)

When answering "yes" to

Has the Defense Contracting Audit Agency (DCAA) or other agreed upon agency, performed a review of your accounts or records in connection with government contracts or subcontracts within the past 12 months?

the text

If no, please provide the date for when such a review was last performed

and

or if never reviewed, check here

appear below the box with the Yes questions. If the No radio button is selected, both the Yes and No questions disappear.

dod_workflow.yaml shows

      ask_if: not dcaa_review

for the No questions, so maybe not isn't working correctly in ask_if?

email addresses not validated

As of commit 58af3, on the Principal Investigator page (and probably elsewhere), there's no validation for legitimate email addresses.

However, this MIGHT be a good thing, if we want to accept answers like "None", "Unknown", etc. Opinions?

This looks small enough that it would probably be a good way for me to ramp toward being useful on the front-end code, so I'm going to assign myself.

Time percentage not validated

As of commit 58af3, on the Principal Investigator page, the "What percentage of the principal investigator's total time will be on the project?" field doesn't complain about entries like "110%", "-30%", "mind your own business", etc.

This looks small enough that it would probably be a good way for me to ramp toward being useful on the front-end code, so I'm going to assign myself.

Push to Cloud Foundry

As part of the release sprint, we should push a password protected instance of SBIR-EZ to Cloud Foundry to allow for acceptance testing by the product owner.

no feedback upon successful proposal verification

At http://localhost:8000/app/proposals/report/3, if there are no validation problems, clicking "Verify this proposal" gives no feedback. It would be more clear to have some on-screen indication that verification is complete - ideally the button would dim and be re-labelled "Verified", or something

(I'm actually not certain that button is currently wired up to do anything, come to think of it... my Django window isn't logging any REST calls when I hit the button - delete if this isn't yet relevant)

We need a way to link a topic to a workflow.

Right now, everything is hard-coded to use the DoD workflow. It should be determined at the solicitation level.

A Solicitation table could pull the solicitation_id, pre_release_date, proposals_begin_date, and proposals_end_date off of the individual topics and tie them to a solicitation. The solicitation table would also be a logical place for a workflow (or root element) id.

Blank names accepted

As of commit 58af3, on the Eligibility page, fields like "Has your firm been convicted of a fraud..." / "provide the name" accept empty names without complaining in on-page or final validation.

This looks small enough that it would probably be a good way for me to ramp toward being useful on the front-end code, so I'm going to assign myself.

invalid % rates fail silently

As of commit 58af3, on the Totals page, entering a non-numeric value in fields like "General & Administrative Rate" appears to be accepted, but no values are calculated for the dependent fields like "General & Administrative Cost" - even after you go back and replace the % values with legitimate percentages.

Can't visit/link to URLs

Users can't access the following interfaces via a URL:

Sign in:
http://localhost:8000/signin/

Sign up:
http://localhost:8000/signup/

My proposals (I'd suggest removing 'app' from the URL, so it's ~/proposals/):
http://localhost:8000/app/proposals

My company (I'd suggest ~/company/):
http://localhost:8000/account/organization

Any proposal:
http://localhost:8000/app/proposals/12?current=2

Deep "links" inside of proposals. Links to other pages should use href

<a ng-click="method(element.id)" group="element" method="jumpTo" ng-if="element.element_type === 'workflow' || element.element_type === 'group'" class="ng-binding ng-isolate-scope" tabindex="0">Requirements Review</a>

Other stuff

Curiously, password reset works!
http://localhost:8000/reset/

A specific search:
http://localhost:8000/search/?query=test

Add a contributing.md file to the repository

We should add a contributing.md file to describe our process better, and ensure that our documentation is up to date and in compliance with 18F open source policies/best practices.

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.