See LICENSE file -> GPL
#Technology
##Client side
- Twitter Bootstrap
- AngularJS
- Full internationalization with Angular Translate
- Compass / Sass
- Bower
- Grunt
- Karma / PhantomJS
##Server side
- Spring Boot
- Maven for building, testing and running the application
- Spring Security
- Spring MVC REST
- Spring Data JPA + Bean Validation
- Database updates with Liquibase
- MySQL database
#Install
npm install
bower install
mvn spring-boot:run##Project structure
.
├── Dockerfile
├── Gruntfile.js
├── README.md
├── bower.json
├── node_modules
├── package.json
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── miagebdx
│ │ └── website
│ │ ├── Application.java
│ │ ├── ApplicationWebXml.java
│ │ ├── aop
│ │ │ └── logging
│ │ │ └── LoggingAspect.java
│ │ ├── async
│ │ │ ├── ExceptionHandlingAsyncTaskExecutor.java
│ │ │ └── package-info.java
│ │ ├── config
│ │ │ ├── AsyncConfiguration.java
│ │ │ ├── CacheConfiguration.java
│ │ │ ├── CloudDatabaseConfiguration.java
│ │ │ ├── Constants.java
│ │ │ ├── DatabaseConfiguration.java
│ │ │ ├── JacksonConfiguration.java
│ │ │ ├── LocaleConfiguration.java
│ │ │ ├── LoggingAspectConfiguration.java
│ │ │ ├── MailConfiguration.java
│ │ │ ├── MetricsConfiguration.java
│ │ │ ├── SecurityConfiguration.java
│ │ │ ├── ThymeleafConfiguration.java
│ │ │ ├── WebConfigurer.java
│ │ │ ├── apidoc
│ │ │ │ ├── SwaggerConfiguration.java
│ │ │ │ └── package-info.java
│ │ │ ├── audit
│ │ │ │ ├── AuditEventConverter.java
│ │ │ │ └── package-info.java
│ │ │ ├── locale
│ │ │ │ ├── AngularCookieLocaleResolver.java
│ │ │ │ └── package-info.java
│ │ │ ├── metrics
│ │ │ │ ├── DatabaseHealthIndicator.java
│ │ │ │ ├── JHipsterHealthIndicatorConfiguration.java
│ │ │ │ ├── JavaMailHealthIndicator.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ ├── domain
│ │ │ ├── AbstractAuditingEntity.java
│ │ │ ├── Article.java
│ │ │ ├── Authority.java
│ │ │ ├── Event.java
│ │ │ ├── Hashtag.java
│ │ │ ├── Partner.java
│ │ │ ├── People.java
│ │ │ ├── PersistentAuditEvent.java
│ │ │ ├── PersistentToken.java
│ │ │ ├── User.java
│ │ │ ├── package-info.java
│ │ │ └── util
│ │ │ ├── CustomDateTimeDeserializer.java
│ │ │ ├── CustomDateTimeSerializer.java
│ │ │ ├── CustomLocalDateSerializer.java
│ │ │ └── ISO8601LocalDateDeserializer.java
│ │ ├── repository
│ │ │ ├── ArticleRepository.java
│ │ │ ├── AuthorityRepository.java
│ │ │ ├── CustomAuditEventRepository.java
│ │ │ ├── EventRepository.java
│ │ │ ├── HashtagRepository.java
│ │ │ ├── PartnerRepository.java
│ │ │ ├── PeopleRepository.java
│ │ │ ├── PersistenceAuditEventRepository.java
│ │ │ ├── PersistentTokenRepository.java
│ │ │ ├── UserRepository.java
│ │ │ └── package-info.java
│ │ ├── security
│ │ │ ├── AjaxAuthenticationFailureHandler.java
│ │ │ ├── AjaxAuthenticationSuccessHandler.java
│ │ │ ├── AjaxLogoutSuccessHandler.java
│ │ │ ├── AuthoritiesConstants.java
│ │ │ ├── CustomPersistentRememberMeServices.java
│ │ │ ├── Http401UnauthorizedEntryPoint.java
│ │ │ ├── SecurityUtils.java
│ │ │ ├── SpringSecurityAuditorAware.java
│ │ │ ├── UserDetailsService.java
│ │ │ ├── UserNotActivatedException.java
│ │ │ └── package-info.java
│ │ ├── service
│ │ │ ├── AuditEventService.java
│ │ │ ├── MailService.java
│ │ │ ├── UserService.java
│ │ │ ├── package-info.java
│ │ │ └── util
│ │ │ └── RandomUtil.java
│ │ └── web
│ │ ├── filter
│ │ │ ├── CachingHttpHeadersFilter.java
│ │ │ ├── CsrfCookieGeneratorFilter.java
│ │ │ ├── StaticResourcesProductionFilter.java
│ │ │ ├── gzip
│ │ │ │ ├── GZipResponseUtil.java
│ │ │ │ ├── GZipServletFilter.java
│ │ │ │ ├── GZipServletOutputStream.java
│ │ │ │ ├── GZipServletResponseWrapper.java
│ │ │ │ ├── GzipResponseHeadersNotModifiableException.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ ├── propertyeditors
│ │ │ ├── LocaleDateTimeEditor.java
│ │ │ └── package-info.java
│ │ └── rest
│ │ ├── AccountResource.java
│ │ ├── ArticleResource.java
│ │ ├── AuditResource.java
│ │ ├── EventResource.java
│ │ ├── HashtagResource.java
│ │ ├── LogsResource.java
│ │ ├── PartnerResource.java
│ │ ├── PeopleResource.java
│ │ ├── UserResource.java
│ │ ├── dto
│ │ │ ├── LoggerDTO.java
│ │ │ ├── UserDTO.java
│ │ │ └── package-info.java
│ │ └── package-info.java
│ ├── resources
│ │ ├── banner.txt
│ │ ├── config
│ │ │ ├── application-dev.yml
│ │ │ ├── application-prod.yml
│ │ │ ├── application.yml
│ │ │ └── liquibase
│ │ │ ├── authorities.csv
│ │ │ ├── changelog
│ │ │ │ ├── 00000000000000_initial_schema.xml
│ │ │ │ ├── 20150118210203_added_entity_People.xml
│ │ │ │ ├── 20150118210402_added_entity_Partner.xml
│ │ │ │ ├── 20150118210436_added_entity_Hashtag.xml
│ │ │ │ ├── 20150118210618_added_entity_Article.xml
│ │ │ │ └── 20150118210841_added_entity_Event.xml
│ │ │ ├── master.xml
│ │ │ ├── users.csv
│ │ │ └── users_authorities.csv
│ │ ├── ehcache.xml
│ │ ├── i18n
│ │ │ ├── messages_en.properties
│ │ │ └── messages_fr.properties
│ │ ├── logback.xml
│ │ ├── mails
│ │ │ └── activationEmail.html
│ │ └── templates
│ │ └── error.html
│ ├── scss
│ │ ├── angular-loading-bar.scss
│ │ ├── googlemaps.scss
│ │ ├── main.scss
│ │ ├── miagebdx.scss
│ │ ├── navbar.scss
│ │ ├── ng-animation.scss
│ │ └── slides.scss
│ └── webapp
│ ├── assets
│ │ ├── images
│ │ │ ├── 001.jpg
│ │ │ ├── 002.jpg
│ │ │ ├── 003.jpg
│ │ │ ├── 004.jpg
│ │ │ ├── 005.jpg
│ │ │ ├── development_ribbon.png
│ │ │ ├── logo_fr.svg
│ │ │ └── miage-logo.png
│ │ └── styles
│ │ └── place\ to\ sass\ compile
│ ├── favicon.ico
│ ├── i18n
│ │ ├── en
│ │ │ ├── activate.json
│ │ │ ├── article.json
│ │ │ ├── audits.json
│ │ │ ├── configuration.json
│ │ │ ├── error.json
│ │ │ ├── event.json
│ │ │ ├── global.json
│ │ │ ├── hashtag.json
│ │ │ ├── health.json
│ │ │ ├── language.json
│ │ │ ├── login.json
│ │ │ ├── logs.json
│ │ │ ├── main.json
│ │ │ ├── metrics.json
│ │ │ ├── partner.json
│ │ │ ├── password.json
│ │ │ ├── people.json
│ │ │ ├── register.json
│ │ │ ├── sessions.json
│ │ │ └── settings.json
│ │ └── fr
│ │ ├── activate.json
│ │ ├── article.json
│ │ ├── audits.json
│ │ ├── configuration.json
│ │ ├── error.json
│ │ ├── event.json
│ │ ├── global.json
│ │ ├── hashtag.json
│ │ ├── health.json
│ │ ├── language.json
│ │ ├── login.json
│ │ ├── logs.json
│ │ ├── main.json
│ │ ├── metrics.json
│ │ ├── partner.json
│ │ ├── password.json
│ │ ├── people.json
│ │ ├── register.json
│ │ ├── sessions.json
│ │ └── settings.json
│ ├── index.html
│ ├── robots.txt
│ ├── scripts
│ │ ├── app
│ │ │ ├── account
│ │ │ │ ├── account.js
│ │ │ │ ├── activate
│ │ │ │ │ ├── activate.controller.js
│ │ │ │ │ ├── activate.html
│ │ │ │ │ └── activate.js
│ │ │ │ ├── login
│ │ │ │ │ ├── login.controller.js
│ │ │ │ │ ├── login.html
│ │ │ │ │ └── login.js
│ │ │ │ ├── logout
│ │ │ │ │ ├── logout.controller.js
│ │ │ │ │ └── logout.js
│ │ │ │ ├── password
│ │ │ │ │ ├── password.controller.js
│ │ │ │ │ ├── password.directive.js
│ │ │ │ │ ├── password.html
│ │ │ │ │ └── password.js
│ │ │ │ ├── register
│ │ │ │ │ ├── register.controller.js
│ │ │ │ │ ├── register.html
│ │ │ │ │ └── register.js
│ │ │ │ ├── sessions
│ │ │ │ │ ├── sessions.controller.js
│ │ │ │ │ ├── sessions.html
│ │ │ │ │ └── sessions.js
│ │ │ │ └── settings
│ │ │ │ ├── settings.controller.js
│ │ │ │ ├── settings.html
│ │ │ │ └── settings.js
│ │ │ ├── admin
│ │ │ │ ├── admin.js
│ │ │ │ ├── audits
│ │ │ │ │ ├── audits.controller.js
│ │ │ │ │ ├── audits.html
│ │ │ │ │ └── audits.js
│ │ │ │ ├── configuration
│ │ │ │ │ ├── configuration.controller.js
│ │ │ │ │ ├── configuration.html
│ │ │ │ │ └── configuration.js
│ │ │ │ ├── docs
│ │ │ │ │ ├── docs.html
│ │ │ │ │ └── docs.js
│ │ │ │ ├── health
│ │ │ │ │ ├── health.controller.js
│ │ │ │ │ ├── health.html
│ │ │ │ │ └── health.js
│ │ │ │ ├── logs
│ │ │ │ │ ├── logs.controller.js
│ │ │ │ │ ├── logs.html
│ │ │ │ │ └── logs.js
│ │ │ │ └── metrics
│ │ │ │ ├── metrics.controller.js
│ │ │ │ ├── metrics.html
│ │ │ │ └── metrics.js
│ │ │ ├── app.js
│ │ │ ├── entities
│ │ │ │ ├── article
│ │ │ │ │ ├── article-detail.controller.js
│ │ │ │ │ ├── article-detail.html
│ │ │ │ │ ├── article.controller.js
│ │ │ │ │ ├── article.js
│ │ │ │ │ ├── articles-list.html
│ │ │ │ │ └── articles.html
│ │ │ │ ├── entity.js
│ │ │ │ ├── event
│ │ │ │ │ ├── event-detail.controller.js
│ │ │ │ │ ├── event-detail.html
│ │ │ │ │ ├── event.controller.js
│ │ │ │ │ ├── event.js
│ │ │ │ │ ├── events-list.html
│ │ │ │ │ └── events.html
│ │ │ │ ├── hashtag
│ │ │ │ │ ├── hashtag-detail.controller.js
│ │ │ │ │ ├── hashtag-detail.html
│ │ │ │ │ ├── hashtag.controller.js
│ │ │ │ │ ├── hashtag.js
│ │ │ │ │ └── hashtags.html
│ │ │ │ ├── partner
│ │ │ │ │ ├── partner-detail.controller.js
│ │ │ │ │ ├── partner-detail.html
│ │ │ │ │ ├── partner.controller.js
│ │ │ │ │ ├── partner.js
│ │ │ │ │ └── partners.html
│ │ │ │ └── people
│ │ │ │ ├── people-detail.controller.js
│ │ │ │ ├── people-detail.html
│ │ │ │ ├── people.controller.js
│ │ │ │ ├── people.js
│ │ │ │ └── peoples.html
│ │ │ ├── error
│ │ │ │ ├── accessdenied.html
│ │ │ │ ├── error.html
│ │ │ │ └── error.js
│ │ │ └── main
│ │ │ ├── main.controller.js
│ │ │ ├── main.html
│ │ │ └── main.js
│ │ └── components
│ │ ├── admin
│ │ │ ├── audits.service.js
│ │ │ ├── configuration.service.js
│ │ │ ├── logs.service.js
│ │ │ └── monitoring.service.js
│ │ ├── auth
│ │ │ ├── auth.service.js
│ │ │ ├── principal.service.js
│ │ │ ├── provider
│ │ │ │ └── auth.session.service.js
│ │ │ └── services
│ │ │ ├── account.service.js
│ │ │ ├── activate.service.js
│ │ │ ├── password.service.js
│ │ │ ├── register.service.js
│ │ │ └── sessions.service.js
│ │ ├── base64-upload
│ │ │ └── upload.directive.js
│ │ ├── cnil
│ │ │ ├── cnil.directive.js
│ │ │ └── cnil.html
│ │ ├── entities
│ │ │ ├── article
│ │ │ │ ├── article.directive.js
│ │ │ │ ├── article.service.js
│ │ │ │ ├── articleHashtag.service.js
│ │ │ │ └── articlePeople.service.js
│ │ │ ├── event
│ │ │ │ ├── event.directive.js
│ │ │ │ ├── event.service.js
│ │ │ │ ├── eventPartner.service.js
│ │ │ │ └── eventPeople.service.js
│ │ │ ├── hashtag
│ │ │ │ └── hashtag.service.js
│ │ │ ├── partner
│ │ │ │ └── partner.service.js
│ │ │ └── people
│ │ │ └── people.service.js
│ │ ├── form
│ │ │ └── form.directive.js
│ │ ├── googleMaps
│ │ │ └── gMapsAutoComplete.js
│ │ ├── language
│ │ │ ├── language.controller.js
│ │ │ └── language.service.js
│ │ ├── markdown
│ │ │ └── markdown.directive.js
│ │ ├── navbar
│ │ │ ├── navbar.controller.js
│ │ │ ├── navbar.directive.js
│ │ │ └── navbar.html
│ │ └── util
│ │ ├── base64.service.js
│ │ └── truncate.filter.js
│ └── swagger-ui
│ ├── images
│ │ └── throbber.gif
│ └── index.html
└── test
├── java
│ └── com
│ └── miagebdx
│ └── website
│ ├── security
│ │ └── SecurityUtilsTest.java
│ ├── service
│ │ └── UserServiceTest.java
│ └── web
│ └── rest
│ ├── AccountResourceTest.java
│ ├── ArticleResourceTest.java
│ ├── EventResourceTest.java
│ ├── HashtagResourceTest.java
│ ├── PartnerResourceTest.java
│ ├── PeopleResourceTest.java
│ ├── TestUtil.java
│ └── UserResourceTest.java
├── javascript
│ ├── karma.conf.js
│ └── spec
│ ├── app
│ │ └── account
│ │ ├── login
│ │ │ └── loginControllerSpec.js
│ │ ├── password
│ │ │ ├── passwordControllerSpec.js
│ │ │ └── passwordDirectiveSpec.js
│ │ ├── sessions
│ │ │ └── sessionsControllerSpec.js
│ │ └── settings
│ │ └── settingsControllerSpec.js
│ └── components
│ └── auth
│ └── authServicesSpec.js
└── resources
├── config
│ └── application.yml
├── ehcache.xml
└── logback-test.xml