Initial commit

This commit is contained in:
ECAILLE Fabrice (externe)
2017-05-03 16:46:01 +02:00
commit 2e64cb961e
117 changed files with 10765 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
#Introduction [![Build Status][build-image]][build-url] [![Coverage Status][coverage-image]][coverage-url]
Cloudbudget is a work-in-progress online Money-like application.
It's written using ExpressJS and provided only REST services. The web interface is in a different project [CloudBugdet-AngularJS](/development/cloudbudget_angularjs).
##Requirements
CloudBudget needs a Mongo database. Database configuration is done in the _config/db.js_ file.
The environment mode is defined by the environment variable NODE_ENV.
##Features
The following features are developed:
* API security done with JWT
* API documentation
* User log on / log in
* User deregistration
* Bank account CRUD
* Bank accounts listing
* Deposit / Bill entry CRUD
* Deposit / Bill entries listing
##Usage
To initialize the application, install all dependencies with
```
npm install
```
To launch CloudBudget, use the following command :
```
NODE_ENV=development node app.js
```
If the PORT environment variable is set, it will be used, if not, the default port is 3000.
The server configuration is done with the _config/server.js_ file.
##API documentation
The root URL is linked to the API documentation.
The API documentation is generated with apidocs into the _public_ folder. To generate it, use the following command :
```
npm run-script generate-doc
```
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/CloudBudget" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>
[build-image]: https://travis-ci.org/Febbweiss/CloudBudget.svg?branch=master
[build-url]: https://travis-ci.org/Febbweiss/CloudBudget
[coverage-image]:https://coveralls.io/repos/Febbweiss/CloudBudget/badge.svg?branch=master&service=github
[coverage-url]: https://coveralls.io/github/Febbweiss/CloudBudget?branch=master

View File

@@ -0,0 +1,35 @@
#Introduction [![Build Status][build-image]][build-url] [![Coverage Status][coverage-image]][coverage-url]
Cloudbudget-AngularJS is a work-in-progress web application for [CloudBugdet](/development/cloudbudget) written in AngularJS.
##Requirements
CloudBudget-AngularJS needs a running CloudBudget instance. The access to this instance is set in the _public/js/app.js_ file with the _HOST_ variable.
##Features
This web application covers all CloudBudget features.
##Usage
To initialize the application, install all dependencies with
```
npm install
```
To launch CloudBudget, use the following command :
```
NODE_ENV=development node app.js
```
If the PORT environment variable is set, it will be used, if not, the default port is 3000.
The server configuration is done with the _config/server.js_ file.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/CloudBudget-AngularJS" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>
[build-image]: https://travis-ci.org/Febbweiss/CloudBudget-AngularJS.svg?branch=master
[build-url]: https://travis-ci.org/Febbweiss/CloudBudget-AngularJS
[coverage-image]:https://coveralls.io/repos/Febbweiss/CloudBudget-AngularJS/badge.svg?branch=master&service=github
[coverage-url]: https://coveralls.io/github/Febbweiss/CloudBudget-AngularJS?branch=master

View File

@@ -0,0 +1,33 @@
# Durandal Filebrowser widget
## What's this widget ?
This [Durandal](http://durandaljs.com/) widget allows to display a folder tree and add some actions to manipulate this items :
- A clic on a file or folder selects it
- A double-clic opens / closes a folder
- A double-clic displays the file content in the editor
- A right-clic opens a context menu with different options
- Rename the item
- Copy the selected item(s)
- Paste the selected item(s)
- Create an item (in a folder)
- Delete an item (and its components)
##Demo
<object data="/demo/filebrowser-durandal-widget/index.html" width="800" height="600">
<embed src="/demo/filebrowser-durandal-widget/index.html" width="800" height="600"> </embed>
<iframe scrolling="no" frameborder="0" src="/demo/filebrowser-durandal-widget/index.html" style="width: 800px; height: 600px; overflow:hidden;">
</iframe>
</object>
##Licence
Source code is under [MIT Licence](http://opensource.org/licenses/mit-license.php)
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/filebrowser-durandal-widget" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

View File

@@ -0,0 +1,25 @@
#Introduction
ProjectDeployer is a work-in-progress web application to deploy Git projects on a server written with Meteor.
##Features
In ProjectDeployer, it's possible to :
* register / modify / delete Git project
* deployment is
* see deployment logs for each project
##Usage
The location for deployed projects is set in the _server/constants.js_ file with the _DEPLOYMENT_FOLDER_ variable.
To launch ProjectDeployer, use the following command :
```
meteor --port $IP:$PORT
```
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/ProjectDeployer" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

View File

@@ -0,0 +1,155 @@
# springboot-react-webpack
A demo project with Spring Boot, React and Webpack
This project includes :
* Spring Boot as backend resource
* React as client JS framework
* webpack to translate JSX to JS and manage client resources link
* maven-release-plugin
* cf-maven-plugin
* docker-maven-plugin (from Spotify)
## Profile
There are 3 profiles :
* the default one (without specification) is for development mode.
* _production_ used to generate the production ready client resources
* _docker_ to access to the Docker plugin and generate an image
## Launching
To launch this project, just use the following command line :
In development mode :
```
mvn clean spring-boot:run
npm run watch
```
In production mode :
```
mvn clean spring-boot:run -P production
```
Without a profile, you have to run the webpack watcher to deliver client resources. With the _production_ profile, no needs to launch the wepback watcher.
## Configuration
To use the CloudFoundry and Release plugins, the _settings.xml_ must contains the following lines :
```xml
<servers>
<server>
<id>cloudfoundry</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>github</id>
<username>username</username>
<password>password</password>
</server>
</servers>
```
## Spring Boot
Spring Boot is used as the backend server. It provides the HTML pages and the REST endpoints.
React is server side compiled at runtime using nashorn.
## React
React is the client side library. It's possible to write JSX which will be translate by webpack.
## Webpack
### Configuration
Webpack configuration is done by the _webpack.config.js_ file at the project's root.
### Usage
Webpack is launched at the _generate-resources_ maven phase.
In this configuration, webpack provides resources (JS and CSS) for commons librairies and custom JS scripts. It takes in account LESS. The HTML final resource is generated from a template adding the needed resources.
Using the default profile and the watcher, the HotModuleReplacement module is activated, so no need to refresh the page when updating a JS or a CSS, webpack does it.
## Plugin release
### Configuration
To manage the release process with Git, you have to replace the link in the _developerConnection_ tag with the Git project URL.
### Usage
The _maven-release-plugin_ allows to release an app tagging the repository. A release is :
* changing from SNAPSHOT to stable
* creating a tag (locally and remotely)
* increasing the SNAPSHOT version
Two steps :
```
mvn release:prepare
mvn release:perform
```
To rollback a _prepare_ :
```
mvn release:rollback
```
To test the release :
```
mvn -DdryRun=true release:prepare
mvn release:clean (test cleaning)
```
### Documentation
<https://maven.apache.org/maven-release/maven-release-plugin/index.html>
## Plugin CloudFoundry
### Configuration
Change the _TOFILL_ strings in the comment plugin's section.
### Usage
The _cf-maven-plugin_ plugin allows to manage the application in a CloudFoundry platform and specifically to push it :
```
mvn cf:push
```
### Documentation
<http://docs.cloudfoundry.org/buildpacks/java/build-tool-int.html>
## Plugin Docker
### Configuration
The _docker-maven-plugin_ (from Spotify) plugin has no configuration.
### Usage
The default project packaging (for CloudFoundry) is a WAR. In the Docker image, we use a JAR. To use this plugin (and the correct packaging), use the _docker_ profile :
```
mvn package -P docker
```
This command generates a local Docker image. To manage it, use the _docker_ profile to access the _docker-maven-plugin_ (such as push it).
### Documentation
<https://github.com/spotify/docker-maven-plugin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/springboot-react-webpack" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

View File

@@ -0,0 +1,34 @@
#Docker Apache log generator
This is a simple Docker container to provide random apache logs.
It's based on [Fake-Apache-Log-Generator](https://github.com/kiritbasu/Fake-Apache-Log-Generator)
The default behaviour is the following :
```sql
python apache-fake-log-gen.py -o LOG -p /var/log/apache/apache -n 0 -s 3
```
The endless generated file is located in /var/log and a line is appended every 3 seconds.
##Timezone
You can change the timezone mounting */etc/timezone* and */etc/localtime* files with a file content such as :
```shell
Europe/Paris
```
##Licences
Copyright (c) 2017 Fabrice ECAILLE aka Febbweiss
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.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/docker-apache-log-generator" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

View File

@@ -0,0 +1,23 @@
#Docker GoCD
GoCD is a Continuous Delivery solution. This project embedded different containers such as a server and nodes.
##Embedded containers
1. [GoCD server](https://github.com/Febbweiss/gocd-docker/tree/master/gocd-server) - The main container based on Debian image
2. [Cloudfoundry agent](https://github.com/Febbweiss/gocd-docker/tree/master/gocd-agent-cloudfoundry) - A node to deploy on CloudFoundry based on alpine image
3. [Docker agent](https://github.com/Febbweiss/gocd-docker/tree/master/gocd-agent-docker) - A node to build and deploy Docker containers based on docker image
4. [Java agent](https://github.com/Febbweiss/gocd-docker/tree/master/gocd-agent-jdk8) - A node to manage Java applications (compile / build) based on alpine-oraclejdk8 image
5. [NodeJS agent](https://github.com/Febbweiss/gocd-docker/tree/master/gocd-agent-nodejs) - A node to manage NodeJS applications (compile / build) based on Debian image
6. [Generic agent](https://github.com/Febbweiss/gocd-docker/tree/master/gocd-agent) - A node providing Java and NodeJS applications management based on Node image
##Usage
The full stack is manage with docker-compose. So, to launch it, just use
```
docker-compose up
```
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/gocd-docker" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

View File

@@ -0,0 +1,41 @@
#Docker log centralizer
This a end-to-end log centralizer powered by the ELK stask.
##Embedded containers
1. [Filebeat](https://www.elastic.co/products/beats/filebeat) - An agent to poll logs
2. [Logstash-Forwarder](https://github.com/elastic/logstash-forwarder) - An other agent to poll logs
3. [Logstash](https://www.elastic.co/products/logstash) - The collector / analyzer / parser solution
4. [Kafka](http://kafka.apache.org) - The queueing solution for logs
5. [ZooKeeper](https://zookeeper.apache.org/) - The cluster on which Kafka is running
6. [ElasticSearch](https://www.elastic.co/products/elasticsearch) - The indexing engine
7. [Kibana](https://www.elastic.co/products/kibana) - The visualization / dashboard tool for ElasticSearch
8. [Kafka Manager](https://github.com/yahoo/kafka-manager) - The Kafka cluster web manager
9. [Apache log generator](https://github.com/Febbweiss/docker-apache-log-generator) - A container generating fake apache logs
10. [Random log generator](https://hub.docker.com/r/davidmccormick/random_log_generator) - A container genrating text logs (Star Wars quotes)
##How it works
There are 2 agent types :
- Filebeat
- Logstash-Forward
These agents push logs (from the apache and random generators) to a Logstasth shipper filling a Kafka queue (one type of log for one topic).
A Logstash indexer polls the Kafka topics indexing logs into a ElasticSearch.
A short schema :
```
Agent -> Logstach shipper -> Kafka <- Logstash indexer -> ElasticSearch
```
##Tools access
Kibana is available at http://localhost:5601.
Kafka Manager is available at http://localhost:9000
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/docker-log-centralizer" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

68
docs/extra/css/extra.css Normal file
View File

@@ -0,0 +1,68 @@
/* Source : https://codepen.io/thierrymichel/pen/Pwzbmd */
[class*="push"] {
position: relative;
display: inline-block;
width: 40px;
height: 40px;
border: 0;
margin: 1em;
outline: none;
background-color: #c2290a;
border-radius: 50%;
cursor: pointer;
-webkit-transition: box-shadow 200ms;
transition: box-shadow 200ms;
}
.push--flat {
box-shadow: inset 0 1.25px 0 #da2e0b, inset 0 -1.25px 0 #aa2409, inset 0 0 0 1.25px #b32609, inset 0 0 0 3.33333px #c2290a, inset 0 0 0 4px #611405, inset 0 0 0 4.34783px black, inset 0 0 0 5.33333px rgba(247, 133, 110, 0.7), inset 0 0 0 7.27273px #c2290a, inset 0 16px 5.33333px #aa2409, inset 0 0 4px 6.66667px #911f08, 0 2px 0 rgba(0, 0, 0, 0.3);
}
.push--flat:after {
content: '';
position: absolute;
bottom: 2px;
left: 4px;
display: block;
width: 32px;
height: 32px;
border: 2.66667px solid rgba(0, 0, 0, 0.3);
border-width: 0 0 2.66667px;
border-radius: 50%;
-webkit-transition-duration: 200ms;
transition-duration: 200ms;
}
.push--flat:active, .push--flat.is-pushed {
box-shadow: inset 0 1.25px 0 #da2e0b, inset 0 -1.25px 0 #aa2409, inset 0 0 0 1.25px #b32609, inset 0 0 0 3.33333px #c2290a, inset 0 0 0 4px #611405, inset 0 0 0 4.70588px black, inset 0 0 0 5.33333px rgba(247, 133, 110, 0.2), inset 0 0 0 7.27273px #b32609, inset 0 16px 5.33333px #9b2108, inset 0 0 4px 6.66667px #791a06, 0 2px 0 rgba(0, 0, 0, 0.3);
background-color: #b8270a;
}
.push--flat:active:after, .push--flat.is-pushed:after {
bottom: 4.66667px;
border-width: 0;
}
.push--skeuo {
box-shadow: inset 0 1.66667px 0 #da2e0b, inset 0 -1.66667px 0.66667px #aa2409, 0 0 0.66667px #c2290a, inset 0 0 1.33333px #791a06, inset 0 0 1.33333px rgba(51, 51, 51, 0.5), inset 0 0 0.66667px 3.33333px #c2290a, inset 0 -1.33333px 1px 4px rgba(51, 51, 51, 0.7), inset 0 0 0.66667px 4px #611405, inset 0 0 0.66667px 4px rgba(51, 51, 51, 0.7), inset 0 0 0.33333px 4.34783px black, inset 0 0 0.33333px 5px rgba(247, 133, 110, 0.7), inset 0 2px 0 4.70588px rgba(244, 71, 37, 0.7), inset 0 -2px 0.66667px 4.70588px rgba(145, 31, 8, 0.2), inset 0 0 0 7.27273px #c2290a, inset 0 16px 5.33333px #aa2409, inset 0 0 4px 6.66667px #911f08, 0 1px 2px rgba(0, 0, 0, 0.5);
}
.push--skeuo:active, .push--skeuo.is-pushed {
box-shadow: inset 0 1.66667px 0 #da2e0b, inset 0 -1.66667px 0.66667px #aa2409, 0 0 0.66667px #c2290a, inset 0 0 1.33333px #791a06, inset 0 0 1.33333px rgba(51, 51, 51, 0.5), inset 0 0 0.66667px 3.33333px #c2290a, inset 0 -1.33333px 1px 4px rgba(51, 51, 51, 0.7), inset 0 0 0.66667px 4px #611405, inset 0 0 0.66667px 4px rgba(51, 51, 51, 0.7), inset 0 0 1px 4.70588px black, inset 0 0 0.33333px 5.33333px rgba(247, 133, 110, 0.2), inset 0 2px 0 28px rgba(244, 71, 37, 0.5), inset 0 -2px 0.66667px 28px rgba(97, 20, 5, 0.2), inset 0 0 0 7.27273px #b32609, inset 0 16px 5.33333px #9b2108, inset 0 0 4px 6.66667px #791a06, 0 1px 2px rgba(0, 0, 0, 0.5);
background-color: #b8270a;
}
.push--skeuo:active:before, .push--skeuo.is-pushed:before {
opacity: .5;
}
.push--skeuo:before {
content: '';
position: absolute;
bottom: 8.88889px;
left: 11.11111px;
display: block;
width: 18.18182px;
height: 12.12121px;
background: rgba(247, 133, 110, 0.2);
background: -webkit-linear-gradient(bottom, rgba(250, 173, 158, 0.3) 0%, rgba(194, 41, 10, 0.1) 100%);
background: linear-gradient(to top, rgba(250, 173, 158, 0.3) 0%, rgba(194, 41, 10, 0.1) 100%);
border-radius: 40% 40% 60% 60%;
-webkit-transition: opacity 200ms;
transition: opacity 200ms;
}

26
docs/extra/css/sis.css Normal file
View File

@@ -0,0 +1,26 @@
.corn {
float: left;
background: transparent url('/demo/sis/images/farm.png') no-repeat top left;
background-position: -19px -37px;
width: 19px;
height: 19px;
margin-right: 5px;
}
.carot {
float: left;
background: transparent url('/demo/sis/images/farm.png') no-repeat top left;
background-position : -38px -37px;
width: 19px;
height: 19px;
margin-right: 5px;
}
.gun {
float: left;
background: transparent url('/demo/sis/images/farm.png') no-repeat top left;
background-position : -57px -37px;
width: 19px;
height: 19px;
margin-right: 5px;
}

12
docs/extra/js/pacman.js Normal file
View File

@@ -0,0 +1,12 @@
$(document).ready(function() {
$('#startBtn').on('click', function(event) {
for( var i = 1; i < 4; i++) {
$("#life" + i).css('opacity', '100');
$("#life" + i).show();
}
SCOREBOARD.score = Game.score = 0;
Game.level = -1;
Game.lives = 3;
Game.init();
});
});

11
docs/extra/js/pyramid.js Normal file
View File

@@ -0,0 +1,11 @@
$(document).ready(function() {
$('#startBtn').on('click', function(event) {
for( var i = 0; i < 52; i++ ) {
Deck.cards[i] = i +1;
}
$('img[id^="card"]').remove();
$("#drawn").removeClass();
$("#stock").addClass("card").addClass("background");
Pyramid.init();
});
});

23
docs/extra/js/sis.js Normal file
View File

@@ -0,0 +1,23 @@
$(document).ready(function() {
$('#startBtn').on('click', function(event) {
Game.running = false;
Game.wave_index = -1;
Game.wave = undefined;
Game.aliens = [];
Game.ship = null;
Game.score = 0;
Game.shots = {
total : 0,
lost : 0
};
Game.init();
$.loadCallback(function(percent){
$("#loadingBar").width(400*percent);
});
$.playground().startGame(
function() {
$("#welcomeScreen").remove();
}
);
});
});

10
docs/extra/js/yahtzee.js Normal file
View File

@@ -0,0 +1,10 @@
$(document).ready(function() {
$('#startBtn').on('click', function(event) {
Yahtzee.clear(true);
Yahtzee.scoreUp = Yahtzee.scoreDown = 0;
$('span[id$="Score"]').html('&nbsp;');
$("#scorePanel").hide();
$("#launch").html(0);
$("#launchBtn").removeClass("disabled");
});
});

View File

@@ -0,0 +1,45 @@
#Space invaders : Stories
This is _Space invaders_ implementation currently under construction.
##How to
The goal is to avoid alien invasion.
Use your keyboard arrows to move your hero and the space key to fire.
Warning : your ammo are limited by your weapon rate of fire...
There are currently 3 different weapons :
<span class="gun"></span> a shotgun
<span class="carot"></span> a carot-machine gun
<span class="corn"></span> a corn-grenade
<object data="/demo/sis/index.html" width="480" height="650">
<embed src="/demo/sis/index.html" width="480" height="650"> </embed>
<iframe scrolling="no" frameborder="0" src="/demo/sis/index.html" style="width: 480px; height: 650px; overflow:hidden;">
</iframe>
</object>
##Credits
+ Graphics : Fabrice Ecaille aka Febbweiss
+ Code : Fabrice Ecaille aka Febbweiss
##Licences
Copyright (c) 2013 Fabrice ECAILLE aka Febbweiss
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.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/sis" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

46
docs/games/pacman.md Normal file
View File

@@ -0,0 +1,46 @@
#Pacman
gq-pacman is a jQuery implementation of the famous Namco©'s Pacman©.
##How to
Use your keyboard arrows to move Pacman to eat all energizer to complete the level.
Ghosts become frightened when Pacman eats a big energizer. Eat them !!!
Beware of ghost who haunt the maze !!! Each one has his own personality :
<div class="ghost blinky"></div> Blinky tracks Pacman as his shadow.
<div class="ghost pinky"></div> Pinky perfoms ambushes to Pacman.
<div class="ghost inky"></div> Inky is the least predictable.
<div class="ghost clyde"></div> Clyde pretends ignorance and is one who lags behind.
##Demo
<object data="/demo/pacman/index.html" width="470" height="600">
<embed src="/demo/pacman/index.html" width="470" height="600"> </embed>
<iframe scrolling="no" frameborder="0" src="/demo/pacman/index.html" style="width: 470px; height: 600px; overflow:hidden;">
</iframe>
</object>
##Credits
+ Graphics : Fabrice Ecaille aka Febbweiss
+ Code : Fabrice Ecaille aka Febbweiss
+ Algorithm : Based on the ["Pacman Dossier"](http://home.comcast.net/~jpittman2/pacman/pacmandossier.html)
+ Tools : [gameQuery](http://gamequeryjs.com/)
+ Sounds : [Sound FX Center](http://soundfxcenter.com/sound_effect/search.php?sfx=Pacman)
##Licences
Source code is under [MIT Licence](http://opensource.org/licenses/mit-license.php)
Sprite is under [CC BY-SA 3.0](http://creativecommons.org/licenses/by-sa/3.0/legalcode)
<link href="css/pacman.css" type="text/css" rel="stylesheet" media="screen, projection" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/gq-pacman" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

34
docs/games/pyramid.md Normal file
View File

@@ -0,0 +1,34 @@
#Pyramid
Pyramid is a jQuery implementation of the famous Pyramid solitaire game card.
##How to
The goal is to remove all Pyramid's cards.
To remove a card, it must be associated with an other one and their sum must be equals to 13.
Each card has is numeric value and Kings' value is 13 (no need to be associated with an other card), Queens' value is 12 and Jake' value is 11.
##Demo
<object data="/demo/pyramid/index.html" width="570" height="470">
<embed src="/demo/pyramid/index.html" width="570" height="470"> </embed>
<iframe scrolling="no" frameborder="0" src="/demo/pyramid/index.html" style="width: 570px; height: 470px; overflow:hidden;">
</iframe>
</object>
##Credits
+ Graphics : [Byron Knoll](http://code.google.com/p/vector-playing-cards)
+ Code : Fabrice Ecaille aka Febbweiss
##Licences
Source code is under [MIT Licence](http://opensource.org/licenses/mit-license.php)
Cards sprite is under [Public domain](http://creativecommons.org/publicdomain/zero/1.0/)
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/pyramid" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

40
docs/games/yahtzee.md Normal file
View File

@@ -0,0 +1,40 @@
#Yahtzee
The classical dice game Yahtzee
##How to
The goal is to complete the two combinaisons grids with five dice
Each player can launch three times the dice to have a combinaison. After each launch, the player chooses to keep or not some dice. Each combinaison has a score.
When both grids are completed, their scores are added and the player with the higher score wins. If the upper grid has a score higher than 63 points, the player wins a bonus of 35 points.
<object data="/demo/yahtzee/index.html" width="620" height="870">
<embed src="/demo/yahtzee/index.html" width="620" height="870"> </embed>
<iframe scrolling="no" frameborder="0" src="/demo/yahtzee/index.html" style="width: 620px; height: 870px; overflow:hidden;">
</iframe>
</object>
##Credits
+ Graphics : Fabrice Ecaille aka Febbweiss
+ Code : Fabrice Ecaille aka Febbweiss
##Licences
Copyright (c) 2013 Fabrice ECAILLE aka Febbweiss
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.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.ie.min.css" />
<![endif]-->
<a class="github-fork-ribbon" href="https://github.com/Febbweiss/js-yahtzee" target="_blank" title="Fork me on GitHub">Fork me on GitHub</a>

27
docs/index.md Normal file
View File

@@ -0,0 +1,27 @@
# Welcome
I made some projects and published them on [GitHub](https://github.com/febbweiss/).
In this space, you will find some of them. Basiclly, these pages are _README_ files but with some adds and demos.
Different projects for different needs :
* Development
- Java
+ [Springboot / React / Webpack](/development/springboot_react_webpack)
- NodeJS
+ [CloudBudget](/development/cloudbudget) (Express)
+ [Project deployer](/development/project_deployer) (Meteor)
- Client-side
+ [CloudBudget-AngularJS](/development/cloudbudget_angularjs) (Express / AngularJS)
+ [Durandal filebrowser widget](/development/filebrowser_durandal_widget) (DurandalJS)
* Docker
- Fullstack servers
+ [Log centralizer](/docker/docker_log_centralizer) ELK stack with Kafka
+ [GoCD](/docker/docker_gocd) GoCD server and agents
- Utilities
+ [Apache log generator](/docker/docker_apache_log_generator)
* Javascript games
- [Space invaders](/games/Space_invaders_stories)
- [Pacman](/games/pacman)
- [Pyramid](/games/pyramid)
- [Yahtzee](/games/yahtzee)