GithubHelp home page GithubHelp logo

jannypie / diatomic Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 5.89 MB

A simple app in Rails and AngularJS for creating digital lab experiment notes

Ruby 67.49% CSS 2.10% HTML 14.16% CoffeeScript 0.35% JavaScript 15.90%

diatomic's Introduction

diatomic

A simple app in Rails and JavaScript for creating digital lab notes.

schema | models | goals | [user stories](#user stories)

App Design

### Schema Database schema Schema XML

### Models User

  • has_many created_experiments
  • has_many reviewed_experiments
  • has_many completed_experiment_steps
  • has_many rooms_managed
  • belongs_to position

Position

  • has_many staff

Experiment

  • has_many procedures
    • has_many steps, through procedures
    • has_many locations, through procedures
  • has and belongs to many categories
  • belongs to creator
  • belongs to reviewer

Procedure

  • join table between Experiment and
  • belongs to experiment
  • belongs to step
  • belongs to technician who completed the work

Step

  • has_many steps_equipment
    • has_many used_equipment, through steps_equipment
  • has and belongs to many tags
  • has many procedures

StepEquipment

  • join table between equipment and step
  • belongs to equipment
  • belongs to step

Location

  • has_many equipment
  • belongs to room manager

Category

  • has and belongs to many experiments

Tag

  • has and belongs to many steps

Equipment

  • belongs to location
  • has many steps_equipment

### Stretch Goals

  • Experiment Templates, with pre-defined sets of procedures that are created when a template is chosen (creates new experiment, creates new procedures with existing steps)
  • Permissions related to Position, with Admin all access, Primary Invesigator with experiment/reviewer access - not too sure about this
  • Steps include time started and time ended
  • Equipment includes calibration data

## User Stories

  1. As an experiment creator, I want to:
  • Create a new experiment
  • Add steps to my experiments through procedures
  • Add information to my experiment through description and conclusions
  • Have my experiment reviewed
  • Add categories to my experiments
  • See my experiments
  • See other's experiments
  1. As a reviewer, I want to:
  • See a completed experiment
  • Once I have read the experiment, "sign" that I have reviewed it
  • See a list of experiments I have reviewed
  1. As a technician, I want to:
  • Add steps to an experiment I'm working on
  • Add comments to steps that I'm working on
  • Add equipment to steps that I'm working on
  • Record what room I did the work in
  • Mark that a step has been completed
  • "Sign" that I was the user that completed a step
  • See procedures I've completed
  1. As a scientist (creator or technician), I want to be able to:
  • Create new steps
  • Add tags to steps
  • Add equipment to steps
  • See steps already created
  1. As a lab manager, I want to:
  • Be assigned to a room to manage
  • Add/remove/edit equipment assigned to my room
  • See a list of equipment assigned to my room

diatomic's People

Contributors

jannypie avatar

Watchers

James Cloos avatar  avatar

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.