Coder Social home page Coder Social logo

brigade-matchmaker's People

Contributors

alschmiedt avatar arkturous avatar aschmiedt avatar cathalyst avatar dependabot[bot] avatar designforsf avatar jlynn avatar jpitts avatar jtanigawa avatar pauljickling avatar rlim1812 avatar spease avatar tsell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brigade-matchmaker's Issues

Messaging: Selection tags should match the messaging form attachment tags

To recreate:

  1. User selects a tag for skill / interest / learn skill (e.g. HTML)
  2. In the top project, user clicks "Contact Project Lead"
  3. In the minmaximized messaging form, these tags do not match the tags in the messaging form attachment. In the messaging form, the tags shoe the hierarchy as opposed to the title.

image

System Configuration Across Components

A design needs to be sketched out and prototyped. Requirements for a configuration system:

  • configs are accessible: JSON stored in a top-level directory, not dotfiles
  • protecting devs from making mistakes: a default JSON is checked in, all others gitignored
  • segmented: define configurations targeting each component
  • possibly using a standard node module, but not a requirement

Landing Page

[x] Convert to bootstrap
[x] Create js function to close/retract the LP and display the navigation
[x] Move text and intent toward prototype
[x] Create js function to re-open landing page
[ ] Toggle switch enabling the user to open/close from navigation

Improve UI for selected keywords in Taxonomy Selector

The current UI for selected keywords is rudimentary and not based on designs.

Use this recent screen shot of designs being tested:
image

In this design, the selected keywords are more compact than the current implementation on staging, have coloring, and also do not indicate hierarchical placement.

Merge with global taxonomy effort

Oz and I kicked off this effort a summit or two ago: https://github.com/codeforamerica/civic-tech-taxonomy

The goal was to create a taxonomy that could be easily shared across brigades and brigade tools to

  1. Make it easier for brigades and tools to have a quality taxonomy that continuously gets improved
  2. Lay the foundation for tools that could work with project/member data across the network

To this end, we settled on maintaining and publishing the taxonomy in sorted YAML files on GitHub, as this would be

  • Easy for various tools and brigades to import and load updates from
  • Provide a distributable workflow for accepting and reviewing additions/corrections to the taxonomy via pull requests
  • Allow brigades and tool makers to fork the taxonomy for experiments in a visible way while maintaining compatibility and a path to merging

To get started, we dumped the wild data set of technology and topic tags that had been accrued in Code for Philly's site over the years with the hopes of then recruiting volunteers to pair that down. That part never got done. We also aimed to get Travis CI setup for quality checking any pull requests to make the workflow for reviewing and accepting additions to the taxonomy as seamless and reliable as possible

Skills and roles taxonomies were also on the horizon. It looks like your research team has produced a quality taxonomy by building one from the ground-up with researchers.

Things to discuss so that we might unite efforts and resume this project together:

  • What forms does your taxonomy exist in currently?
  • Can we convert it to a sorted yaml format (the structure/attributes currently illustrated were only a first draft and can certainly be iterated upon)?
  • Can your team switch your workflow to importing from this repo as the authoritative taxonomy?

Project Profile

On hover, UI should display details more specific details of the project.

Function to render an individual project's tags

Create a function which can be used to render just the project's taxonomy tags and those specified by the user. Requires a project ID and target div ID to be specified. This is for use within the messaging component.

Web Wizard Data Structure

Proposed data structure:

  • step
  • isComplete
  • startedAt
  • updatedAt
  • user
    • email
    • password
    • interests (array of keywords)
    • skills (array of keywords)
    • roles (array of keywords)

Messaging system service

Basic functionality:

  • nodejs service running independently from the web app
  • REST API that can be called from the UI
  • message format (includes to "project id", from, message, user selection from taxonomy)
  • API call leads to a message being queued
  • service periodically examines the queue and sends messages to Slack

Define the system config file

Proposed data structure:

  • groups (array of hashes)
    • name, github project name
  • preferences
    • interests (array of keywords)
    • skills (array of keywords)
    • roles (array of keywords)

SelectorUI View to bring together the SelectorView instances

A Backbone View (possibly called SelectorUI) in the selector_ui component that creates a single API to the three SelectorView, and provides the following functions to the Web App and other components that may embed the Selector UI.

  • getSelection()
  • indicateMatchingStarted()
  • indicateMatchingFinished()

How this might be used in the Web App's project-match.js:

    // called when the user clicks on the generate match button
    PM.generateMatch = function () {

    	console.log('ProjectMatch.generateMatch');
			var selectorUI = ProjectMatch.SelectorUI;

    	// UI: matching started
    	selectorUI.indicateMatchingStarted();

      // search with the current user's taxonomy selection
      projView.searchProjects(selectorUI.getSelection());

      // UI: matching finished
      setTimeout(function () {
      	selectorUI.indicateMatchingFinished();
      }, 1000);
      
    }; // END generateMatch

Project List

Update list to reflect current UI prototype using bootstrap.

Python CLI Test

Python script to test out the sorting algorithm.

Input:

  • user
    • email
    • interests: comma delimited keywords
    • skills: comma delimited keywords
    • role: comma delimited keywords

Database (initially simulated):

  • groups, each having:
    • interests: array of { keyword, weight }
    • skills needed: array of { keyword, weight }
    • roles needed: array of { keyword, weight }

Output:

  • sorted list of groups

Web service fetches config from each project GitHub

A data format is defined. Involves https calls to GitHub, then storing the data in the local mongodb instance. This would go through mongoose. This should be an API call, and a cronjon can be created that calls this with wget or curl.

Project List UI not fetching results based on user input

When setting skills=javascript in the UI selector, the results do not reflect this selection. Also, viewing the log I can see that it is not coming through in the ajax / XHR request.

GET /api/user/matches?skills=&learnSkills=&interests=& 304 646.620 ms - -

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.