Skip to content
This repository has been archived by the owner on Sep 7, 2023. It is now read-only.

Commit

Permalink
title: initial moving of new things from desktop
Browse files Browse the repository at this point in the history
why: syncing of codebases

what needs this meets: too much divergence between browser
and desktop versions

possible side effects: remnants of desktop-specific code
  • Loading branch information
zacanger committed Feb 11, 2016
1 parent 7ab0c0f commit f92b615
Show file tree
Hide file tree
Showing 155 changed files with 8,298 additions and 9,424 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Expand Up @@ -9,3 +9,6 @@ insert_final_newline = true
trim_trailing_whitespace = true
indent_size = 2

[*.md]
trim_trailing_whitespace = false

232 changes: 214 additions & 18 deletions .eslintrc
@@ -1,34 +1,230 @@
{
"ecmaFeatures": {
"jsx": true,
"modules": true,
"forOf": true,
"arrowFunctions": true,
"binaryLiterals": true,
"blockBindings": true,
"classes": true,
"defaultParams": true,
"destructuring": true,
"forOf": true,
"generators": true,
"experimentalObjectRestSpead": true
"modules": true,
"experimentalObjectRestSpread": true,
"objectLiteralComputedProperties": true,
"objectLiteralDuplicateProperties": false,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"octalLiterals": false,
"regexUFlag": false,
"regexYFlag": false,
"restParams": true,
"spread": true,
"superInFunctions": true,
"templateStrings": true,
"unicodePointEscapes": true,
"globalReturn": false,
"jsx": true
},
"env": {
"browser": true,
"node": true,
"commonjs": true,
"jquery": true,
"shelljs": true,
"mongo": true,
"meteor": true,
"es6": true
},
"parser": "babel-eslint",
"rules": {
"quotes": [2, "single"],
"strict": [2, "never"],
"babel/generator-star-spacing": 1,
"babel/new-cap": 1,
"comma-spacing": [1, { "before": false, "after": true }],
"babel/object-shorthand": 1,
"babel/arrow-parens": 1,
"babel/no-await-in-loop": 1,
"react/jsx-uses-react": 2,
"react/jsx-uses-vars": 2,
"react/react-in-jsx-scope": 2
},
"plugins": [
"babel",
"react"
]
],
"rules": {
"accessor-pairs": 2,
"array-bracket-spacing": [1, "never"],
"arrow-spacing": [2, {"before": true, "after": true}]
"babel/block-scoped-var": 1,
"babel/generator-star-spacing": [1, "after"],
"babel/new-cap": 1,
"babel/object-curly-spacing": [1, "always"],
"babel/object-shorthand": [1, "always"],
"block-scoped-var": 0,
"block-spacing": [2, "always"]
"brace-style": [1, "1tbs", { "allowSingleLine": true }],
"camelcase": [1, { "properties": "always" }],
"comma-dangle": [2, "never"],
"comma-spacing": [2, { "before": false, "after": true }],
"comma-style": [2, "first"],
"complexity": 0,
"computed-property-spacing": 0,
"consistent-return": 1,
"consistent-this": 0,
"constructor-super": 2,
"curly": [2, "multi-line"],
"default-case": 0,
"dot-location": [2, "property"],
"dot-notation": [1, { "allowKeywords": true, "allowPattern": "" }],
"eol-last": 2,
"eqeqeq": [2, "allow-null"],
"func-names": 1,
"func-style": 0,
"generator-star-spacing": [2, { "before": true, "after": true }],
"guard-for-in": 0,
"handle-callback-err": [2, "^(err|error)$" ],
"indent": [2, 2, {"SwitchCase": 1}],
"key-spacing": [2, { "beforeColon": false, "afterColon": true }],
"linebreak-style": 0,
"max-nested-callbacks": [0, 3],
"new-cap": [2, { "newIsCap": true, "capIsNew": false }]
"newline-after-var": 0,
"new-parens": 2,
"no-alert": 1,
"no-array-constructor": 2,
"no-caller": 2,
"no-catch-shadow": 0,
"no-class-assign": 2,
"no-cond-assign": [1, "except-parens"],
"no-console": 1,
"no-const-assign": 2,
"no-constant-condition": 1,
"no-continue": 1,
"no-control-regex": 2,
"no-debugger": 2,
"no-delete-var": 2,
"no-div-regex": 1,
"no-dupe-args": 2,
"no-dube-class-members": 2,
"no-dupe-keys": 2,
"no-duplicate-case": 2,
"no-else-return": 1,
"no-empty": 1,
"no-empty-character-class": 2,
"no-empty-label": 1,
"no-eq-null": 0,
"no-eval": 2,
"no-ex-assign": 2,
"no-extend-native": 1,
"no-extra-bind": 2,
"no-extra-boolean-cast": 2,
"no-extra-parens": [2, "functions"],
"no-extra-semi": 2,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-func-assign": 2,
"no-implied-eval": 2,
"no-inline-comments": 0,
"no-inner-declarations": [2, "functions"],
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
"no-iterator": 2,
"no-labels": 2,
"no-label-var": 2,
"no-lone-blocks": 2,
"no-lonely-if": 1,
"no-loop-func": 1,
"no-mixed-requires": 1,
"no-mixed-spaces-and-tabs": 2,
"no-multiple-empty-lines": [2, { "max": 1 }],
"no-multi-spaces": 2,
"no-multi-str": 2,
"no-native-reassign": 2,
"no-negated-in-lhs": 2,
"no-nested-ternary": 0,
"no-new": 1,
"no-new-func": 2,
"no-new-object": 2,
"no-new-require": 2,
"no-new-wrappers": 2,
"no-obj-calls": 2,
"no-octal": 2,
"no-octal-escape": 2,
"no-param-reassign": 0,
"no-path-concat": 1,
"no-process-env": 0,
"no-process-exit": 1,
"no-proto": 2,
"no-redeclare": 1,
"no-regex-spaces": 1,
"no-reserved-keys": 0,
"no-restricted-modules": [1, ""],
"no-return-assign": 1,
"no-script-url": 1,
"no-self-compare": 1,
"no-sequences": 1,
"no-shadow": 1,
"no-shadow-restricted-names": 1,
"no-spaced-func": 2,
"no-sparse-arrays": 1,
"no-sync": 1,
"no-ternary": 0,
"no-this-before-super": 2,
"no-throw-literal": 2,
"no-trailing-spaces": 2,
"no-undef": 2,
"no-undefined": 1,
"no-undef-init": 2,
"no-underscore-dangle": 0,
"no-unexpected-multiline": 2,
"no-unneeded-ternary": [2, { "defaultAssignment": false }],
"no-unreachable": 2,
"no-unused-expressions": 0,
"no-unused-vars": [1, { "vars": "local", "args": "after-used" }],
"no-useless-call": 2,
"no-use-before-define": 1,
"no-var": 1,
"no-void": 0,
"no-warning-comments": [1, { "terms": ["todo", "tofix"], "location": "start" }],
"no-with": 1,
"object-curly-spacing": 0,
"object-shorthand": 0,
"one-var": [2, { "initialized": "never" }],
"operator-assignment": [1, "never"],
"operator-linebreak": [2, "after", { "overrides": { "?": "before", ":": "before" } }],
"padded-blocks": [2, "never"],
"prefer-const": 1,
"quote-props": [0, "as-needed"],
"quotes": [2, "single", "avoid-escape"],
"radix": 1,
"react/display-name": 1,
"react/jsx-boolean-value": 1,
"react/jsx-no-duplicate-props": 1,
"react/jsx-no-undef": 1,
"react/jsx-quotes": [1, "single"],
"react/jsx-sort-props": 0,
"react/jsx-sort-prop-types": 1,
"react/jsx-uses-react": 1,
"react/jsx-uses-vars": 1,
"react/no-danger": 1,
"react/no-did-mount-set-state": 1,
"react/no-did-update-set-state": 1,
"react/no-multi-comp": 1,
"react/no-unknown-property": 1,
"react/prop-types": 1,
"react/react-in-jsx-scope": 1,
"react/self-closing-comp": 1,
"react/sort-comp": 1,
"react/wrap-multilines": 0,
"semi": [2, "never"],
"semi-spacing": [2, { "before": false, "after": true }],
"sort-vars": 0,
"space-after-keywords": [2, "always"],
"space-before-blocks": [2, "always"],
"space-before-function-paren": [2, "never"],
"space-before-keywords": [2, always]
"spaced-comment": [2, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!", ","] }],
"space-infix-ops": 2,
"space-in-parens": [2, "never"],
"space-return-throw-case": 2,
"space-unary-ops": [2, { "words": true, "nonwords": false }],
"strict": [1, "never"],
"use-isnan": 1,
"valid-jsdoc": 1,
"valid-typeof": 1,
"vars-on-top": 1,
"wrap-iife": [2, "any"],
"wrap-regex": 1,
"yoda": [2, "never"]
}
}

2 changes: 2 additions & 0 deletions .gitattributes
@@ -0,0 +1,2 @@
* filter=ignoreline

54 changes: 25 additions & 29 deletions .gitignore
@@ -1,38 +1,34 @@
.DS_Store
*~
*.7z
_build/
/.build/
build.js
bundle
bundle.js
*.bz2
codemirror_libs
completer.hist
data
db
dist
npm-debug.log*
*.so.*
*.so
.DS_Store
*.egg
*.elf
*.gz
*.ko
*.lock
node_modules
npm-debug.log*
*.o
*.out
*.gz
*.tar
*.bz2
*.7z
*.zip
TAGS
tags
*.pid
__pycache__/
*.py[cod]
*$py.class
*.egg
/.build/
_build/
*.zedstate
/bin/x
/bin/x/**
node_modules
bower_components
data
db
bundle.js
build.js
x/**
**/api.key
**.key
codemirror_libs
**/codemirror_libs
*.py[cod]
*.so
*.so.*
*.swp
tags
TAGS
*.tar

20 changes: 14 additions & 6 deletions README.md
@@ -1,12 +1,20 @@
# [PHARAOH](http://pharaoh.js.org)

We're a group of students at [DevMountain](https://github.com/devmountain), building just about the neatest instructor tool you've ever seen. Imagine a lecture with no JSBin or JSFiddle, with no opening the Developer Tools in your browser just to show something in the console, with no rushed projects thrown together and then sent out on Slack. Imagine a read-only app that would allow students to see your code in realtime, as you make changes, and see everything you `import` or `require`, and check out the files you're pulling from.
This is the desktop app for Pharaoh, a project started by a group of students at
[DevMountain](https://github.com/devmountain). Please see [our core repo](https://github.com/pharaoh-js/pharaoh.git)
for more information on Pharaoh.

Well, that's what we imagined, because right now there's a ton of tooling around Javascript development, but not nearly enough tools for teaching it. We're starting with a React-based student app and a package for one of the most popular editors on the market. We hope to build this into something pretty awesome, because no one should have to use JSBin, Github, and Slack, just to get through one lecture.
Until this hits version 1.0, please expect breakage on any branch!
If you need something that works, get this from NPM (`npm i -g pharaoh`); those releases are fully functional.

This is the front end for our tool, built in React, using Firepad. To get started, `git clone
https://github.com/pharaoh-js/pharaoh.git`, `cd pharaoh`, `npm i`, and `npm start`. If you have problems with
webpack-dev-server's process not dying on `ctrl+c`, use `npm run go` instead.
This app is built on [NW.js](https://github.com/nwjs), using React and Firebase. To get started using Pharaoh, simply
`npm i -g pharaoh`, and then run `pharaoh`. To get started hacking on it, `git clone
https://github.com/pharaoh-js/pharaoh-desktop.git`, `cd pharaoh-desktop`, and `npm start`.
`npm run dev` to run Pharaoh for the browser, with hot loading, then navigate to <http://127.0.0.1:9090/public>.

All PRs welcome!
Please be aware that some of the npm scripts _will not work_ in a non-POSIX environment. If you're on a Windows
machine, use something that makes it un-Windows-y.

Any and all PRs welcome! Please check out [this directory](https://github.com/pharaoh-js/pharaoh-desktop/tree/nwjs/doc)
and the [to-do list](https://github.com/pharaoh-js/pharaoh-desktop/blob/nwjs/doc/todo.md).

2 changes: 2 additions & 0 deletions config.json
@@ -0,0 +1,2 @@
{"useVersion":"0.13.0-alpha2"}

0 comments on commit f92b615

Please sign in to comment.