Coder Social home page Coder Social logo

icontrib's People

Contributors

aeyakovenko avatar duereg avatar garious avatar sakridge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

duereg

icontrib's Issues

move server code out of top-level directory

Since we don't have a good mechanism for stringing together git repos at this time, let's organize this one such that each top-level directory represents a package. So, let's move all the .hs files into their own directory.

Our naming convention for directories has been lowercase, but let's follow Haskell's lead and switch to CamelCase with the first letter capitalized. We will have many reusable packages at this directory level, so we'll want this one to have a specific name like 'IContribServer'

rename check_user to user_state.json

In nav/nav.js, instead of this:

        $.ajax({
                type: "GET",
                url: "/check_user",
                dataType: "json",
                success: function(data) {
                   loginForm.innerHTML = data;
                }
            });

Add '/user_state.json' to the list of external dependencies for the module, and rename the resource in the server to return that same data.

/auth/add => /auth/donor/update

/auth/add should imply a call to /auth/donor, setting 'email' and the 'owner' to the text to the left of the email's @. All other fields may be blank.

If this does not happen as an atomic operation, then we end up in the situation where the user has a valid cookie, but /donor/username.json returns a 404.

After implementing this, please update the TODO in Client/SignUp.js

purge jquery

goodbye jquery, hello yoink.js and composable widgets

new homepage

Replace homepage with the profile page of the "most influential" donor's profile, and the ability to navigate to other influential donors.

Add a button to align with the donor. If the user is not logged in, show a popup that gives them the option to either log in or continue building their distribution. We don't need to ask the user to create an account until they want to save or fund their distribution.

At the very bottom of the page, there should be small links for "Join our charity network" and "Corporate Matching". Same concept as the links in the bottom-right of Facebook. Not distracting, but available.

purge html

no need for HTML anymore. The webserver now generates an HTML wrapper so that javascript need only return the top-level DOM node

move donor and charity data to database

Can you get these files out of the 'public' directory? Also, rename them to use their unique identifier, and update any references to them in the static .json files.

$ find public -iname "*.jpg"
public/charity/gffw.jpg
public/charity/usoa.jpg
public/donor/elisarossi.jpg
public/donor/eric.jpg
public/donor/gregf.jpg
public/donor/tombrown.jpg

Add pie chart to Charity profile

When the user presses "align", show a popup of the pie chart. All charities but the current one should be read-only by default.

under construction

I'd like to share the website openly at icontrib.org, but we need to be very upfront about the current state of affairs - that this is a demo!

And could you change the names of the organizations to some that are clearly not real?

revert yoink to unordered interpreting

Bad:

define(['jquery.js', 'myJQueryPlugin.js'], function($, _) {
    var div = document.createElement('div');
    return $(div).myWidget();
});

Better:

define(['myWidget.js'], function(W) { 
   return W.myWidget();
});

jquery plugins will need to be wrapped, but will get much better performance for everyone that doesn't utilize jquery's awkward plugin model. The former only works because:

  1. jQuery first writes to global variables, which the plugin uses to thrust itself into the jQuery object
  2. yoink jumps through hoops to download modules in parallel but then interpret them in sequence.

instead, yoink will go back to interpreting modules as soon as it receives them, which will allow it to start downloading its own dependencies as quickly as possible instead of waiting for the slowest download to complete.

Add pie chart to Donor dashboard

From the donor dashboard, the user should be able to modify the percentage of any charity. The user should be able to pin any charity so that its percentage does not change when others change.

charity signup page

We need a charity signup form. It should include:

  • EIN (or a search box to look it up)
  • point of contact
  • terms of agreement

add support for pulling JS modules

Design and implement a JavaScript module format that can be rendered as an HTML page.

For example, user requests: "/widgets/myfav"

widgets/myfav.js contains:

return document.createTextNode("hello world");

returned HTML is:

<html>
   <body>
       <script src="yoink/yoink.js"></script>
       <script>
         YOINK.getResource('/widgets/myfav.js', function(node) {
             document.body.appendChild(node);
         });
     </script>
  </body>
</html>

url: widgets/myfav?a=123&b=234
generates HTML that expects:

return function(a,b) {
    return document.createTextNode("hello world"); 
}

url: widgets/myfav/main?a=123&b=234
generates HTML that expects:

return {
    main: function(a,b) {
        return document.createTextNode("hello world"); 
    }
}

make serve

"make" should run the unit tests.
"make serve" should depend on 'all' and then start up the server on localhost:8000
"make serve PORT=8001" should start the server on port 8001

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.