Milestone 6 Code Infrastructure

From crowdresearch
Jump to: navigation, search

This is one of the two options for Milestone 6, which is geared towards teams who are more interested in implementing the base infrastructure for our platform. If your team is more interested in the research side of things, see Milestone 6 Research Proposal. Note that your choice of milestone this week will not limit your future options (ie, if you choose to write a research proposal this week, you will still be able to contribute to code in the future if you so desire).

Pick a few ideas and implement a functional crowd market that implements them. Focus on getting down the basics first, and a good, modular architecture - we want code infrastructure which teams can easily extend and build on to implement their own ideas. Host a live-running version of your site on Heroku, so we can see how your implementation is progressing. List your repo on Github so that other teams can see and copy your code. If you want to join with other teams, you are welcome to coordinate with other teams via our spreadsheet to find others with skillsets that match your implementation needs.

Infrastructure chat

We have added an #infra channel to Slack for implementation discussion. Have all teams members join it! It's a great place for code discussion and questions.

Technology Survey

[Survey is already done] Fill out this survey before Sunday April 5th at 10AM PST to help us determine what technologies you want to use for implementation.

Framework and Technologies

Based on the results of the survey, it appears most teams want to use Django, so please use that for your server-side code (you are welcome to use additional server-side frameworks that build upon Django, like Django REST Framework, as desired). You are welcome to optionally use client-side technologies like Angular.js if you want to.

Objective

Pick a few ideas and implement a functional crowd market that implements them. Focus on getting down the basics first, and a good, modular architecture - we want code infrastructure which teams can easily extend and build on to implement their own ideas. Host a live-running version of your site on Heroku, so we can see how your implementation is progressing. List your repo on Github so that other teams can see and copy your code. If you want to join with other teams, you are welcome to coordinate with other teams via our spreadsheet to find others with skillsets that match your implementation needs.

Please note that you are not completing with other teams but working with them. Please feel free to share code between teams. Once you choose your technology, please fill out this google doc immediately so that we know what technologies you are planning on using. Other team's can use this information and decide if they want to join anther team's effort and collaboratively work on the code together.

Collaboration

Feel free to jointly work with other teams for this milestone, use each others' code, etc. We have a Google Doc to help you find teams to work together with, you can also use the #infra slack channel. Now or eventually, we'll be working together to achieve the goal. For this week, we're trying to know you better, your skill level, your preferences about technology or approach - so we can help you collaborate better.

Modularity

Please ensure that it is easy to add features to your platform. Things should be isolated nicely into modules that can be worked on independently of one another. You should read up on the architecture of frameworks like Angular.js, Backbone.js, and React to learn more about modularity.

Deliverables

Live Site

Make a publicly hosted site that showcases your service (Heroku is a great free option) and link to it. Tutorials for doing this:

Django on Heroku

Github

Add your Github repo to the crowdresearch organization on github: https://github.com/crowdresearch and link to it

Please make sure to document all of your code on github so that it is easily understandable by others. Make sure to share your repository on the #infra channel so that other teams are aware of where your code lives so that they can join your repository if they want.

Architecture

Please document your overall system architecture. Please explain how your framework is modular and makes it easy to extend the platform and add new features.

Example Modules in this system architecture

Implement one or more features as a a module and document how someone would create those modules / how the modules fit into your system architecture.

Submitting

Create a Wiki Page for your Teams' Submission

Please create a page for your team's submission at http://crowdresearch.stanford.edu/w/index.php?title=Milestone_6_YourTeamName&action=edit (substituting in YourTeamName with the team name - if you jointly built your system with other teams, include their names in your submission title), copy over the template at Milestone 6 Code Infrastructure Template .

[Team Leaders] Post the links to your code infrastructure until 8th April 11:59 pm

Fill out the Google Doc and determine whether you want to join with another team and code together. We have a service on which you can post code infrastructure you generated, comment on them, and upvote ones you like.

http://crowdresearch.meteor.com/category/milestone-6-code-infrastructure

Post links to your code infrastructure only once they're finished. Give your posts a title which describes what the site you implemented is. Do not include words like "Milestone", "Research Proposal", or your team name in the title.

-Please submit your finished code infrastructure by 11:59 pm 8th April 2015, and DO NOT vote/comment until 9th April 12:05 am

[Everyone] Peer-evaluation (upvote ones you like, comment on them) from 12:05 am 9th April until 9 am 10th April

Post submission phase, you are welcome to browse through, upvote, and comment on others' research proposals. We encourage you especially to look at and comment on submissions that haven't yet gotten feedback, to make sure everybody's submissions get feedback.

Step 1: Please use http://crowdresearch.meteor.com/needcomments to find submissions that haven't yet gotten feedback, and http://crowdresearch.meteor.com/needclicks to find submissions that haven't been yet been viewed many times.

Step 2: Once you find an idea of interest or less attended, please vote and comment upon it. Please perform this action from 3 to 5 submissions - this will help us balance the comments and votes. Please do not vote your team's research proposals. Once again, everyone is supposed to vote+comment, whether you're the team leader or not.

COMMENT BEST-PRACTICES: As on Crowdgrader, everybody reviews at least 3 submissions, supported by a comment. The comment should provide constructive feedback. Negative comments are discouraged - if you disliked some aspect of a submission, make a suggestion for improvement.

[Team Leaders] Milestone 6 Submissions

To help us track all submissions and browsing through them, once you have finished your Milestone 6 Code Infrastructure submission, go to the link below and post the link:

Milestone 6 Code Infrastructure Submissions