Giter Site home page Giter Site logo

dj's Introduction

World Data Center

Gitter

Project name GitHub version Build Status Dependencies Coverage Status Issue Stats Issue Stats Stories in Ready

Prerequisites

Required software:

  • node.js (or io.js) is installed (better 0.11.x or newer) Install latest node.js using npm install -g n; n latest as root/admin user
  • npm is installed (minimum 2.0, check with npm --version. Upgrade to newer npm with npm install -g npm and make sure new npm is in PATH with higher priority than the old one.
  • mongodb is installed

Highly recommended:

  • bower is installed (run npm install -g bower as admin)
  • gulp is installed (run npm install -g gulp as admin)

Optional:

  • karma is installed (run npm install -g karma` as admin)
  • protractor is installed (run npm install -g protractor as admin)
  • chrome and firefox (optional) are installed
  • docker and docker-compose. Installation instructions - Ubuntu, Windows,

Build

To run this project from terminal run the following command:

 npm install
 npm start

OR if docker and docker-compose are installed (better suited for production usage):

docker build -t sochka/wdc .
docker-compose up

Intellij idea project has preconfigured run configurations.

API docs

To generate API documentation run gulp docs

Open docs/index.html to view documentation in the browser.

Debugging:

If you want to debug javascript code in Intellij Idea - set your breakpoints in .tmp/public, not in assets/. Otherwise the debugger won't stop at your breakpoints

Project style guides:

  • MOST IMPORTANT: follow the existing code style
  • Make sensible variable names
  • Don't use git pull, use git pull --rebase or git up (git plugin) instead. You can run git config branch.master.rebase true to make git pull behave like git pull --rebase on project basis.
  • Use commit names in format [SCOPE] explanation where SCOPE is a feature, subproject or component. Examples:
    • [build] Change gulp task
    • [front-end] added new feature
    • [hotfix] fixed mistake in previous commit
    • [test] added new tests
    • [travis] removed module
    • [heroku] changed env variables
  • Use branches:
    • master branch for stable code synced from develop and bugfixes.
    • develop branch for code in development. Should be regularly merged into master
    • feature-branches for single features development. Should be merged into develop.
    • git tags on master branch to mark releases (like v0.4.3 or v1.0)

Used technologies

  • git (version control)
  • ES6/7 JavaScript (modules, async/await, classes, arrow functions etc...)
  • Sails.JS (node.js MVC framework)
  • npm (front-end dev. dependencies)
  • bower (front-end dependencies)
  • jspm (front-end dependencies)
  • gulp (front-end task-runner)
  • karma (front-end unit-test runner)
  • protractor (end-to-end test runner)
  • jasmine (test framework)
  • angularjs (MVVM front-end framework)
  • SystemJS (universal dependency loader)
  • LESS (CSS replacement)
  • jsdoc (JS documentation engine)
  • travis (Continuous Integration)
  • heroku (PaaS)
  • gravatar (service for centralized user avatar (image) store)
  • docker (deployment) (deployment)

Intellij Idea

The following steps will make your work with Intellij Idea more productive

  1. Set JavaScript version - EcmaScript 6
  2. Install TypeScript community stubs for front-end javascript dependencies.

Suggested intellij idea plugins:

  • NodeJS
  • gulp
  • karma
  • LESS
  • gitignore (for syntax highlight)
  • angularjs
  • markdown
  • EditorConfig
  • EJS

Suggested Chrome extensions:

  • angularjs batarang
  • JetBrains IDE support

dj's People

Contributors

batytskyy avatar boldak avatar gitter-badger avatar illiakalu avatar pashchuk avatar podvysotskyi avatar rasendubi avatar sashasochka avatar troshchuk avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dj's Issues

Minification policy

What's our policy about minification? Should widget code/templates be minified?

If no - the speed will be very bad because of network latency.
If yes - we have to redeploy the whole app OR support some kind tool (e.g. gulp task through plugin) for live minification if new widgets are added etc...

JSON editor as Widget Options Editor

Add multiple SPAs support

Support:

  • OAuth authentication
  • SPA ownership by it's creator
  • owner can grant write access to other users
  • owner can make SPA public/private for all users.
  • New SPA contains one empty page by default

Who is responsible for widget styling?

Who is responsible for widget styling?
3 options with drawbacks:

  • If it's widget creator then all widgets look the same
  • If it's page creator then he should know css
  • If widget creator allows to customize everything through configuration - too many config options for the user & too much work for widget creator

Fix "no mapping found" warning

Fix the following warnings in tomcat logs

WARNING: No mapping found for HTTP request with URI [/dev-page] in DispatcherServlet with

Make good website design

  • Should use rem instead of px. Follow foundation guidelines.
  • mobile devices should be supported
  • handle widescreen monitors betters.

Objects to JSON and back.

Discover Jackson or some other JSON <-> Object library and create mechanism for this transitions.

Add Event type

  1. Чтобы обрабатывать сообщения, надо где-то брать инф. о его структуре.

Use index.html instead of index.jsp

index.jsp should be index.html for the following 2 purposes:

  • no jsp dependency
  • in jsp (unlike static html) if you change it's contents you have to restart the whole tomcat server

Improve build system (minification)

[Server] - redirect to index.jsp without sending 404 error code first.

Currently if user loads anything except '/' or static pages described in wdc-servlet.xml server sends 404 error code and then shows '/' page. But if user loads '/page/home' - it's an invalid query, server shouldn't give 404 error code, it should just show index file. See error message in google chrome

so-q3

Adding components to all pages at once

How do we add components (like json config viewer at the bottom of the page) to all the pages at once? Withough this mechanism devs should modify all the page templates at once or use some global condition variables to display that part of the page.

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.