Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LightCalc - projeto node #3

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lightcalc/.app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require('sails').lift();
3 changes: 3 additions & 0 deletions lightcalc/.bowerrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"directory": "assets/bower_components"
}
10 changes: 10 additions & 0 deletions lightcalc/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
1 change: 1 addition & 0 deletions lightcalc/.foreverignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**/.tmp/**
118 changes: 118 additions & 0 deletions lightcalc/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
################################################
############### .gitignore ##################
################################################
#
# This file is only relevant if you are using git.
#
# Files which match the splat patterns below will
# be ignored by git. This keeps random crap and
# sensitive credentials from being uploaded to
# your repository. It allows you to configure your
# app for your machine without accidentally
# committing settings which will smash the local
# settings of other developers on your team.
#
# Some reasonable defaults are included below,
# but, of course, you should modify/extend/prune
# to fit your needs!
################################################




################################################
# Local Configuration
#
# Explicitly ignore files which contain:
#
# 1. Sensitive information you'd rather not push to
# your git repository.
# e.g., your personal API keys or passwords.
#
# 2. Environment-specific configuration
# Basically, anything that would be annoying
# to have to change every time you do a
# `git pull`
# e.g., your local development database, or
# the S3 bucket you're using for file uploads
# development.
#
################################################

config/local.js





################################################
# Dependencies
#
# When releasing a production app, you may
# consider including your node_modules and
# bower_components directory in your git repo,
# but during development, its best to exclude it,
# since different developers may be working on
# different kernels, where dependencies would
# need to be recompiled anyway.
#
# More on that here about node_modules dir:
# http://www.futurealoof.com/posts/nodemodules-in-git.html
# (credit Mikeal Rogers, @mikeal)
#
# About bower_components dir, you can see this:
# http://addyosmani.com/blog/checking-in-front-end-dependencies/
# (credit Addy Osmani, @addyosmani)
#
################################################

node_modules
bower_components




################################################
# Sails.js / Waterline / Grunt
#
# Files generated by Sails and Grunt, or related
# tasks and adapters.
################################################
.tmp
dump.rdb





################################################
# Node.js / NPM
#
# Common files generated by Node, NPM, and the
# related ecosystem.
################################################
lib-cov
*.seed
*.log
*.out
*.pid
npm-debug.log





################################################
# Miscellaneous
#
# Common files generated by text editors,
# operating systems, file systems, etc.
################################################

*~
*#
.DS_STORE
.netbeans
nbproject
.idea
.node_history
5 changes: 5 additions & 0 deletions lightcalc/.sailsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"generators": {
"modules": {}
}
}
81 changes: 81 additions & 0 deletions lightcalc/Gruntfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/**
* Gruntfile
*
* This Node script is executed when you run `grunt` or `sails lift`.
* It's purpose is to load the Grunt tasks in your project's `tasks`
* folder, and allow you to add and remove tasks as you see fit.
* For more information on how this works, check out the `README.md`
* file that was generated in your `tasks` folder.
*
* WARNING:
* Unless you know what you're doing, you shouldn't change this file.
* Check out the `tasks` directory instead.
*/

module.exports = function(grunt) {


// Load the include-all library in order to require all of our grunt
// configurations and task registrations dynamically.
var includeAll;
try {
includeAll = require('include-all');
} catch (e0) {
try {
includeAll = require('sails/node_modules/include-all');
}
catch(e1) {
console.error('Could not find `include-all` module.');
console.error('Skipping grunt tasks...');
console.error('To fix this, please run:');
console.error('npm install include-all --save`');
console.error();

grunt.registerTask('default', []);
return;
}
}


/**
* Loads Grunt configuration modules from the specified
* relative path. These modules should export a function
* that, when run, should either load/configure or register
* a Grunt task.
*/
function loadTasks(relPath) {
return includeAll({
dirname: require('path').resolve(__dirname, relPath),
filter: /(.+)\.js$/
}) || {};
}

/**
* Invokes the function from a Grunt configuration module with
* a single argument - the `grunt` object.
*/
function invokeConfigFn(tasks) {
for (var taskName in tasks) {
if (tasks.hasOwnProperty(taskName)) {
tasks[taskName](grunt);
}
}
}




// Load task functions
var taskConfigurations = loadTasks('./tasks/config'),
registerDefinitions = loadTasks('./tasks/register');

// (ensure that a default task exists)
if (!registerDefinitions.default) {
registerDefinitions.default = function (grunt) { grunt.registerTask('default', []); };
}

// Run task functions to configure Grunt.
invokeConfigFn(taskConfigurations);
invokeConfigFn(registerDefinitions);

};
1 change: 1 addition & 0 deletions lightcalc/Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: node app.js
37 changes: 37 additions & 0 deletions lightcalc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# lightcalc

a [Sails](http://sailsjs.org) application that uses angularjs to make beautiful and light calculators with isolates operations histories.

## Running application

Install nodejs

In the application folder, run "npm install" with the required permissions.

OBS.: in Ubuntu, you haave to run "sudo npm install", for example

After npm install all the project dependencies, run "bower install" to download the frontend depencies.

For last, run "sails lift", and then the application will be running at http://localhost:1337.


## Running tests

There are two sets of tests in the application: the backend tests, which test the REST api provided by sails, and the frontend tests, which test the angularjs application.

### Backend tests

To run the backend tests you have to install mocha globally running "npm install mocha -g" with the required permissions.

After mocha is installed run the command "mocha test/bootstrap.test.js test/unit/**.*.test.js" in the project root folder.

### Frontend tests

To run the backend tests you have to install karma tests runner globally running "npm install karma -g" with the required permissions.

After karma is installed run the command "karma start" in the project root folder.


## Demo version

[http://lightcalc.herokuapp.com](http://lightcalc.herokuapp.com)
Empty file.
11 changes: 11 additions & 0 deletions lightcalc/api/controllers/CalculatorController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* CalculatorController
*
* @description :: Server-side logic for managing calculators
* @help :: See http://sailsjs.org/#!/documentation/concepts/Controllers
*/

module.exports = {

};

11 changes: 11 additions & 0 deletions lightcalc/api/controllers/OperationController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* OperationController
*
* @description :: Server-side logic for managing operations
* @help :: See http://sailsjs.org/#!/documentation/concepts/Controllers
*/

module.exports = {

};

Empty file added lightcalc/api/models/.gitkeep
Empty file.
24 changes: 24 additions & 0 deletions lightcalc/api/models/Calculator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/**
* Calculator.js
*
* @description :: TODO: You might write a short summary of how this model works and what it represents here.
* @docs :: http://sailsjs.org/#!documentation/models
*/

module.exports = {
attributes: {
name: {
type: 'STRING',
required: true,
unique: true,
alphanumeric: true,
minLength: 8,
maxLength: 40
},
operations: {
collection: 'operation',
via: 'calculator'
}
}
};

22 changes: 22 additions & 0 deletions lightcalc/api/models/Operation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/**
* Operation.js
*
* @description :: TODO: You might write a short summary of how this model works and what it represents here.
* @docs :: http://sailsjs.org/#!documentation/models
*/

module.exports = {

attributes: {
calculator: {
model: 'calculator',
required: true
},

text: {
type: 'STRING',
required: true,
}
}
};

21 changes: 21 additions & 0 deletions lightcalc/api/policies/sessionAuth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/**
* sessionAuth
*
* @module :: Policy
* @description :: Simple policy to allow any authenticated user
* Assumes that your login action in one of your controllers sets `req.session.authenticated = true;`
* @docs :: http://sailsjs.org/#!/documentation/concepts/Policies
*
*/
module.exports = function(req, res, next) {

// User is allowed, proceed to the next policy,
// or if this is the last policy, the controller
if (req.session.authenticated) {
return next();
}

// User is not allowed
// (default res.forbidden() behavior can be overridden in `config/403.js`)
return res.forbidden('You are not permitted to perform this action.');
};
Loading