/meteor-app

Example of module Meteor Application on angular2-now

Primary LanguageJavaScriptMIT LicenseMIT

Because of angular 1 digest cycle performance i don't maintain anymore this package but if you want to continue do this just write to me scibor.rudnicki@wwwdev.io.

Now i am working on the similar project but with much better performance (i have already tested it) because of angular 2+ with facebook graphql and some other new features that will be available soon - sodalite.

meteorApp

GitHub version GitHub issues GitHub forks GitHub stars GitHub license Gitter join

This is an example of module Meteor Application on angular2-now with packages below. It consists clients and developers states where developers is created to help develop meteorApp and clients to manage todos or tasks.

Table of contents

Demo

http://meteor-app.wieldo.com/

Packages

Wieldo

Basic

Forms

CSS, Icons

Time

JSON

Collections

Install

# clone repo
git clone https://github.com/wieldo/meteor-app.git

# go to cloned directory
cd meteor-app

# install npm packages
npm install

How to run

meteor run

# open browser with http://localhost:3000

JS conventions

http://eslint.org/

  • eslint:recommended

http://www.w3schools.com/js/js_conventions.asp

  • Always use 4 spaces for indentation of code blocks
  • we use camelCase for identifier names (variables and functions)
  • we use CamelCase for classes
  • Always end a simple statement with a semicolon
  • Do not end a complex statement with a semicolon
  • Don't start names with a $ sign. It will put you in conflict with many JavaScript library names
  • JSON strings must be double quoted

Versioning

Semantic Versioning 2.0.0 http://semver.org/

Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

FAQ
How should I deal with revisions in the 0.y.z initial development phase?

The simplest thing to do is start your initial development release at 0.1.0 and then increment the minor version for each subsequent release.

How do I know when to release 1.0.0?

If your software is being used in production, it should probably already be 1.0.0. If you have a stable API on which users have come to depend, you should be 1.0.0. If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.

GIT commit

Folder structure

This project is using bundle folder structure and every module should act like independent. It means that it has got own folders api, client, styles that are useful for only that bundle.

app/

meteor-app/
 └──app/                                    * app module folder
     ├──config/                             * configuration for app
     ├──developers/                         * here are placed files that help create module todo, calendar and are useful for programmers
     ├──helpers/                            * helpers for all components
     ├──sign/                               * sign component
     ├──app.component.js                    * app component
     ├──app.module.js                       * app module
     ├──app.navigation.js                   * json for navigation
     ├──app.view.html                       * app component view
     ├──core.module.js                      * core module with angular-meteor, angular-storage and routingModule
     ├──index.js                            * export everything from app module
     ├──modules.js                          * import and export every available module
     ├──routing.module.js                   * routerModule that contains angular-ui-router
     └──run.js                              * default run for app module

client/, server/, developers/

meteor-app/
 ├──client/                                 * client entry point, imports all client code
 |   ├──main.html                           * main html code with app tag
 |   ├──main.js                             * import main.scss, startup files, scss from other packages
 |   └──main.scss                           * import scss startup file(s)
 ├──server/                                 * server entry point, imports all server code
 |    └──main.js                            * import all server code
 └──developers/                             * here are placed files that help create module todos, calendar and are useful for programmers

module example

meteor-app/
├──imports/                                           * all module files are placed here
|   ├──clients/                                       * here are placed packages like todo, calendar etc. modules
│   │   ├──dashboard/                                 * module and index file to export
|   |   |   ├──client/
|   |   |   |   ├──dashboard.component.js             * default component
|   |   |   |   ├──dashboard.spec.js                  * a simple test of component
|   |   |   |   ├──dashboard.style.scss               * component scss styles
|   |   |   |   └──dashboard.view.html                * component default view
|   |   |   ├──dashboard.module.js                    * dashboard module
|   |   |   └──index.js                               * export all from module
│   │   ├──todo/
│   │   |   ├──api/                                   * here are placed all api files for todo module
|   |   |   |   |
|   |   |   |   ├──collections/                       * here are placed files for todo module to manage collections
|   |   |   |   |   ├──todo.allow.js                  * mongo collection allow
|   |   |   |   |   ├──todo-attach-schema.js          * attach schema to todo collection
|   |   |   |   |   ├──todo.collection.js             * exported mongo collection
|   |   |   |   |   └──index.js                       * export all from collection
|   |   |   |   ├──methods/                           * here are placed all api methods
|   |   |   |   |   ├──index.js                       * export all from methods
|   |   |   |   |   ├──todo.insert.js                 * todo insert method
|   |   |   |   |   ├──todo.remove.js
|   |   |   |   |   └──todo.update.js
|   |   |   |   ├──server/                            * here are placed all server code for todo module
|   |   |   |   |   ├──todo.fixtures.js               
|   |   |   |   |   ├──index.js                       * export all from server
|   |   |   |   |   └──todo.publish.js                * all publications for todo are placed here or in folder publish
|   |   |   |   ├──index.js                           * export all from api
|   |   |   |   └──schemas.js                         *
|   |   |   ├──client/
|   |   |   |   └──index.js
|   |   |   ├──sort/                                  * sub component of todo module to sort list
|   |   |   |   ├──client/
|   |   |   |   |   └──index.js
|   |   |   |   ├──sort.component.js
|   |   |   |   ├──sort.service.js
|   |   |   |   ├──sort.style.scss
|   |   |   |   └──sort.view.html
|   |   |   ├──index.js                               * export module todo
|   |   |   ├──todo.component.js
|   |   |   ├──todo.module.js
|   |   |   ├──todo.service.js
|   |   |   ├──todo.state.js
|   |   |   ├──todo.style.scss
|   |   |   └──todo.view.html
|   |   └──index.js                                   * export all from clients

Road map

Dashboard

Start page

  • Statistics
  • Charts

Calendar

  • Events

Chat

Chat with your friends

  • Chat on room
  • Chat user - user

Create dialog

  • Events
  • Tasks
  • Todos

Crypto

Encrypt your collection data with crypto-js library

  • Decrypt example
  • Encrypt example
  • Example with formly material

Events

  • Form
  • Display on calendar
  • Remove
  • Update

Task

  • Console debug
  • Create new
  • Decrypt
  • Description
  • Display list
  • Due date from events
  • Edit
  • Edit in line
  • Encrypt
  • Filter by people
  • Filter by status
  • Form
  • Map location
  • Paging
  • Permissions
  • Remove (as updated removed field)
  • Sort list
  • Search
  • Todos as completed
  • Update
  • Updates history

Todo

  • Console debug
  • Create new
  • Display list
  • Decrypt
  • Edit
  • Edit in line
  • Encrypt
  • Filter by people
  • Filter by status
  • Form
  • Paging
  • Remove (as updated removed field)
  • Sort list
  • Search
  • Update
  • Update history name

Settings

Set some things

  • Manage profile photo
  • Update user data

Sign in

  • Change state after sign in
  • Console debug
  • Form

Sign up

  • Birthday
  • Console debug
  • Create private and public key
  • Gender
  • Form
  • Send email
  • Verify email both sides
  • Verify password

Users

  • Decrypt
  • Edit
  • Encrypt
  • Invites
  • Roles
  • Update
  • Remove from invites

Developers navigation

  • Few examples of navigationComponent

Licence

The MIT License (MIT) Copyright (c) 2016 Wieldo

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Donate

If you want to help our developers create software donate please.