├── .gitignore
├── LICENSE
├── README.md
├── Vagrantfile
├── bootstrap.sh
├── mase-core
├── .gitignore
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── io
│ │ │ └── github
│ │ │ └── javageeks
│ │ │ └── mase
│ │ │ ├── model
│ │ │ ├── Todo.java
│ │ │ └── User.java
│ │ │ ├── repository
│ │ │ ├── TodoRepository.java
│ │ │ └── UserRepository.java
│ │ │ └── service
│ │ │ ├── TodoService.java
│ │ │ ├── UserService.java
│ │ │ └── impl
│ │ │ ├── TodoServiceImpl.java
│ │ │ └── UserServiceImpl.java
│ └── resources
│ │ └── spring
│ │ └── mase-core-context.xml
│ └── test
│ └── java
│ └── io
│ └── github
│ └── javageeks
│ └── mase
│ └── service
│ └── test
│ ├── TodoRepositoryTest.java
│ ├── TodoServiceTest.java
│ └── UserServiceTest.java
├── mase-web
├── .gitignore
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── io
│ │ └── github
│ │ └── javageeks
│ │ └── mase
│ │ └── web
│ │ ├── TodoController.java
│ │ ├── UserController.java
│ │ └── util
│ │ ├── CORSFilter.java
│ │ ├── DatabasePopulator.java
│ │ ├── SessionData.java
│ │ └── SessionHandlerInterceptor.java
│ └── webapp
│ ├── WEB-INF
│ ├── spring
│ │ └── mase-web-context.xml
│ └── web.xml
│ ├── css
│ ├── app.css
│ ├── bootstrap.min.css
│ ├── font-awesome.min.css
│ └── jumbotron-narrow.css
│ ├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ └── glyphicons-halflings-regular.woff
│ ├── index.html
│ ├── js
│ ├── app.js
│ ├── controllers.js
│ ├── directives.js
│ ├── filters.js
│ ├── lib
│ │ └── angular
│ │ │ ├── angular-animate.js
│ │ │ ├── angular-animate.min.js
│ │ │ ├── angular-animate.min.js.map
│ │ │ ├── angular-cookies.js
│ │ │ ├── angular-cookies.min.js
│ │ │ ├── angular-cookies.min.js.map
│ │ │ ├── angular-csp.css
│ │ │ ├── angular-loader.js
│ │ │ ├── angular-loader.min.js
│ │ │ ├── angular-loader.min.js.map
│ │ │ ├── angular-resource.js
│ │ │ ├── angular-resource.min.js
│ │ │ ├── angular-resource.min.js.map
│ │ │ ├── angular-route.js
│ │ │ ├── angular-route.min.js
│ │ │ ├── angular-route.min.js.map
│ │ │ ├── angular-sanitize.js
│ │ │ ├── angular-sanitize.min.js
│ │ │ ├── angular-sanitize.min.js.map
│ │ │ ├── angular-scenario.js
│ │ │ ├── angular-touch.js
│ │ │ ├── angular-touch.min.js
│ │ │ ├── angular-touch.min.js.map
│ │ │ ├── angular.js
│ │ │ ├── angular.min.js
│ │ │ ├── angular.min.js.gzip
│ │ │ ├── angular.min.js.map
│ │ │ ├── errors.json
│ │ │ ├── i18n
│ │ │ ├── angular-locale_af-na.js
│ │ │ ├── angular-locale_af-za.js
│ │ │ ├── angular-locale_af.js
│ │ │ ├── angular-locale_am-et.js
│ │ │ ├── angular-locale_am.js
│ │ │ ├── angular-locale_ar-001.js
│ │ │ ├── angular-locale_ar-ae.js
│ │ │ ├── angular-locale_ar-bh.js
│ │ │ ├── angular-locale_ar-dz.js
│ │ │ ├── angular-locale_ar-eg.js
│ │ │ ├── angular-locale_ar-iq.js
│ │ │ ├── angular-locale_ar-jo.js
│ │ │ ├── angular-locale_ar-kw.js
│ │ │ ├── angular-locale_ar-lb.js
│ │ │ ├── angular-locale_ar-ly.js
│ │ │ ├── angular-locale_ar-ma.js
│ │ │ ├── angular-locale_ar-om.js
│ │ │ ├── angular-locale_ar-qa.js
│ │ │ ├── angular-locale_ar-sa.js
│ │ │ ├── angular-locale_ar-sd.js
│ │ │ ├── angular-locale_ar-sy.js
│ │ │ ├── angular-locale_ar-tn.js
│ │ │ ├── angular-locale_ar-ye.js
│ │ │ ├── angular-locale_ar.js
│ │ │ ├── angular-locale_bg-bg.js
│ │ │ ├── angular-locale_bg.js
│ │ │ ├── angular-locale_bn-bd.js
│ │ │ ├── angular-locale_bn-in.js
│ │ │ ├── angular-locale_bn.js
│ │ │ ├── angular-locale_ca-ad.js
│ │ │ ├── angular-locale_ca-es.js
│ │ │ ├── angular-locale_ca.js
│ │ │ ├── angular-locale_cs-cz.js
│ │ │ ├── angular-locale_cs.js
│ │ │ ├── angular-locale_da-dk.js
│ │ │ ├── angular-locale_da.js
│ │ │ ├── angular-locale_de-at.js
│ │ │ ├── angular-locale_de-be.js
│ │ │ ├── angular-locale_de-ch.js
│ │ │ ├── angular-locale_de-de.js
│ │ │ ├── angular-locale_de-li.js
│ │ │ ├── angular-locale_de-lu.js
│ │ │ ├── angular-locale_de.js
│ │ │ ├── angular-locale_el-cy.js
│ │ │ ├── angular-locale_el-gr.js
│ │ │ ├── angular-locale_el.js
│ │ │ ├── angular-locale_en-as.js
│ │ │ ├── angular-locale_en-au.js
│ │ │ ├── angular-locale_en-bb.js
│ │ │ ├── angular-locale_en-be.js
│ │ │ ├── angular-locale_en-bm.js
│ │ │ ├── angular-locale_en-bw.js
│ │ │ ├── angular-locale_en-bz.js
│ │ │ ├── angular-locale_en-ca.js
│ │ │ ├── angular-locale_en-dsrt-us.js
│ │ │ ├── angular-locale_en-dsrt.js
│ │ │ ├── angular-locale_en-fm.js
│ │ │ ├── angular-locale_en-gb.js
│ │ │ ├── angular-locale_en-gu.js
│ │ │ ├── angular-locale_en-gy.js
│ │ │ ├── angular-locale_en-hk.js
│ │ │ ├── angular-locale_en-ie.js
│ │ │ ├── angular-locale_en-in.js
│ │ │ ├── angular-locale_en-iso.js
│ │ │ ├── angular-locale_en-jm.js
│ │ │ ├── angular-locale_en-mh.js
│ │ │ ├── angular-locale_en-mp.js
│ │ │ ├── angular-locale_en-mt.js
│ │ │ ├── angular-locale_en-mu.js
│ │ │ ├── angular-locale_en-na.js
│ │ │ ├── angular-locale_en-nz.js
│ │ │ ├── angular-locale_en-ph.js
│ │ │ ├── angular-locale_en-pk.js
│ │ │ ├── angular-locale_en-pr.js
│ │ │ ├── angular-locale_en-pw.js
│ │ │ ├── angular-locale_en-sg.js
│ │ │ ├── angular-locale_en-tc.js
│ │ │ ├── angular-locale_en-tt.js
│ │ │ ├── angular-locale_en-um.js
│ │ │ ├── angular-locale_en-us.js
│ │ │ ├── angular-locale_en-vg.js
│ │ │ ├── angular-locale_en-vi.js
│ │ │ ├── angular-locale_en-za.js
│ │ │ ├── angular-locale_en-zw.js
│ │ │ ├── angular-locale_en.js
│ │ │ ├── angular-locale_es-419.js
│ │ │ ├── angular-locale_es-ar.js
│ │ │ ├── angular-locale_es-bo.js
│ │ │ ├── angular-locale_es-cl.js
│ │ │ ├── angular-locale_es-co.js
│ │ │ ├── angular-locale_es-cr.js
│ │ │ ├── angular-locale_es-do.js
│ │ │ ├── angular-locale_es-ea.js
│ │ │ ├── angular-locale_es-ec.js
│ │ │ ├── angular-locale_es-es.js
│ │ │ ├── angular-locale_es-gq.js
│ │ │ ├── angular-locale_es-gt.js
│ │ │ ├── angular-locale_es-hn.js
│ │ │ ├── angular-locale_es-ic.js
│ │ │ ├── angular-locale_es-mx.js
│ │ │ ├── angular-locale_es-ni.js
│ │ │ ├── angular-locale_es-pa.js
│ │ │ ├── angular-locale_es-pe.js
│ │ │ ├── angular-locale_es-pr.js
│ │ │ ├── angular-locale_es-py.js
│ │ │ ├── angular-locale_es-sv.js
│ │ │ ├── angular-locale_es-us.js
│ │ │ ├── angular-locale_es-uy.js
│ │ │ ├── angular-locale_es-ve.js
│ │ │ ├── angular-locale_es.js
│ │ │ ├── angular-locale_et-ee.js
│ │ │ ├── angular-locale_et.js
│ │ │ ├── angular-locale_eu-es.js
│ │ │ ├── angular-locale_eu.js
│ │ │ ├── angular-locale_fa-af.js
│ │ │ ├── angular-locale_fa-ir.js
│ │ │ ├── angular-locale_fa.js
│ │ │ ├── angular-locale_fi-fi.js
│ │ │ ├── angular-locale_fi.js
│ │ │ ├── angular-locale_fil-ph.js
│ │ │ ├── angular-locale_fil.js
│ │ │ ├── angular-locale_fr-be.js
│ │ │ ├── angular-locale_fr-bf.js
│ │ │ ├── angular-locale_fr-bi.js
│ │ │ ├── angular-locale_fr-bj.js
│ │ │ ├── angular-locale_fr-bl.js
│ │ │ ├── angular-locale_fr-ca.js
│ │ │ ├── angular-locale_fr-cd.js
│ │ │ ├── angular-locale_fr-cf.js
│ │ │ ├── angular-locale_fr-cg.js
│ │ │ ├── angular-locale_fr-ch.js
│ │ │ ├── angular-locale_fr-ci.js
│ │ │ ├── angular-locale_fr-cm.js
│ │ │ ├── angular-locale_fr-dj.js
│ │ │ ├── angular-locale_fr-fr.js
│ │ │ ├── angular-locale_fr-ga.js
│ │ │ ├── angular-locale_fr-gf.js
│ │ │ ├── angular-locale_fr-gn.js
│ │ │ ├── angular-locale_fr-gp.js
│ │ │ ├── angular-locale_fr-gq.js
│ │ │ ├── angular-locale_fr-km.js
│ │ │ ├── angular-locale_fr-lu.js
│ │ │ ├── angular-locale_fr-mc.js
│ │ │ ├── angular-locale_fr-mf.js
│ │ │ ├── angular-locale_fr-mg.js
│ │ │ ├── angular-locale_fr-ml.js
│ │ │ ├── angular-locale_fr-mq.js
│ │ │ ├── angular-locale_fr-ne.js
│ │ │ ├── angular-locale_fr-re.js
│ │ │ ├── angular-locale_fr-yt.js
│ │ │ ├── angular-locale_fr.js
│ │ │ ├── angular-locale_gl-es.js
│ │ │ ├── angular-locale_gl.js
│ │ │ ├── angular-locale_gsw-ch.js
│ │ │ ├── angular-locale_gsw.js
│ │ │ ├── angular-locale_gu-in.js
│ │ │ ├── angular-locale_gu.js
│ │ │ ├── angular-locale_he-il.js
│ │ │ ├── angular-locale_he.js
│ │ │ ├── angular-locale_hi-in.js
│ │ │ ├── angular-locale_hi.js
│ │ │ ├── angular-locale_hr-hr.js
│ │ │ ├── angular-locale_hr.js
│ │ │ ├── angular-locale_hu-hu.js
│ │ │ ├── angular-locale_hu.js
│ │ │ ├── angular-locale_id-id.js
│ │ │ ├── angular-locale_id.js
│ │ │ ├── angular-locale_in.js
│ │ │ ├── angular-locale_is-is.js
│ │ │ ├── angular-locale_is.js
│ │ │ ├── angular-locale_it-it.js
│ │ │ ├── angular-locale_it-sm.js
│ │ │ ├── angular-locale_it.js
│ │ │ ├── angular-locale_iw.js
│ │ │ ├── angular-locale_ja-jp.js
│ │ │ ├── angular-locale_ja.js
│ │ │ ├── angular-locale_kn-in.js
│ │ │ ├── angular-locale_kn.js
│ │ │ ├── angular-locale_ko-kr.js
│ │ │ ├── angular-locale_ko.js
│ │ │ ├── angular-locale_ln-cd.js
│ │ │ ├── angular-locale_ln.js
│ │ │ ├── angular-locale_lt-lt.js
│ │ │ ├── angular-locale_lt.js
│ │ │ ├── angular-locale_lv-lv.js
│ │ │ ├── angular-locale_lv.js
│ │ │ ├── angular-locale_ml-in.js
│ │ │ ├── angular-locale_ml.js
│ │ │ ├── angular-locale_mr-in.js
│ │ │ ├── angular-locale_mr.js
│ │ │ ├── angular-locale_ms-my.js
│ │ │ ├── angular-locale_ms.js
│ │ │ ├── angular-locale_mt-mt.js
│ │ │ ├── angular-locale_mt.js
│ │ │ ├── angular-locale_nl-cw.js
│ │ │ ├── angular-locale_nl-nl.js
│ │ │ ├── angular-locale_nl-sx.js
│ │ │ ├── angular-locale_nl.js
│ │ │ ├── angular-locale_no.js
│ │ │ ├── angular-locale_or-in.js
│ │ │ ├── angular-locale_or.js
│ │ │ ├── angular-locale_pl-pl.js
│ │ │ ├── angular-locale_pl.js
│ │ │ ├── angular-locale_pt-br.js
│ │ │ ├── angular-locale_pt-pt.js
│ │ │ ├── angular-locale_pt.js
│ │ │ ├── angular-locale_ro-ro.js
│ │ │ ├── angular-locale_ro.js
│ │ │ ├── angular-locale_ru-ru.js
│ │ │ ├── angular-locale_ru.js
│ │ │ ├── angular-locale_sk-sk.js
│ │ │ ├── angular-locale_sk.js
│ │ │ ├── angular-locale_sl-si.js
│ │ │ ├── angular-locale_sl.js
│ │ │ ├── angular-locale_sq-al.js
│ │ │ ├── angular-locale_sq.js
│ │ │ ├── angular-locale_sr-cyrl-rs.js
│ │ │ ├── angular-locale_sr-latn-rs.js
│ │ │ ├── angular-locale_sr.js
│ │ │ ├── angular-locale_sv-se.js
│ │ │ ├── angular-locale_sv.js
│ │ │ ├── angular-locale_sw-tz.js
│ │ │ ├── angular-locale_sw.js
│ │ │ ├── angular-locale_ta-in.js
│ │ │ ├── angular-locale_ta.js
│ │ │ ├── angular-locale_te-in.js
│ │ │ ├── angular-locale_te.js
│ │ │ ├── angular-locale_th-th.js
│ │ │ ├── angular-locale_th.js
│ │ │ ├── angular-locale_tl.js
│ │ │ ├── angular-locale_tr-tr.js
│ │ │ ├── angular-locale_tr.js
│ │ │ ├── angular-locale_uk-ua.js
│ │ │ ├── angular-locale_uk.js
│ │ │ ├── angular-locale_ur-pk.js
│ │ │ ├── angular-locale_ur.js
│ │ │ ├── angular-locale_vi-vn.js
│ │ │ ├── angular-locale_vi.js
│ │ │ ├── angular-locale_zh-cn.js
│ │ │ ├── angular-locale_zh-hans-cn.js
│ │ │ ├── angular-locale_zh-hk.js
│ │ │ ├── angular-locale_zh-tw.js
│ │ │ ├── angular-locale_zh.js
│ │ │ ├── angular-locale_zu-za.js
│ │ │ └── angular-locale_zu.js
│ │ │ ├── version.json
│ │ │ └── version.txt
│ └── services.js
│ └── partials
│ ├── home.html
│ ├── login.html
│ ├── register.html
│ └── todo-list.html
├── pom.xml
└── site
├── mase.png
└── mase.pptx
/.gitignore:
--------------------------------------------------------------------------------
1 | # Eclipse
2 | .classpath
3 | .project
4 | .settings/
5 |
6 | # Mac
7 | .DS_Store
8 |
9 | # Maven
10 | target/
11 |
12 | # Vagrant
13 | .vagrant/
14 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Mahmoud Ben Hassine, Titouan Compiègne
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | :exclamation: **Note: This project is not maintained anymore.**
2 |
3 | # About MASE
4 |
5 | MASE stands for Mongodb-Angularjs-Spring-Elasticsearch and is a simple yet complete online todo list manager using the following technologies:
6 |
7 | 
8 |
9 | ## Client side
10 |
11 | * [AngularJS](http://angularjs.org/)
12 | * [Twitter bootstrap](http://getbootstrap.com/) and [Font Awesome](http://fortawesome.github.io/Font-Awesome/)
13 | * [HTML5](http://www.w3.org/TR/html5/) and [CSS3](http://www.w3schools.com/css/css3_intro.asp)
14 |
15 | ## Server side
16 |
17 | * [MongoDB](https://www.mongodb.org/)
18 | * [Spring Data MongoDB](http://projects.spring.io/spring-data-mongodb/)
19 | * [Spring MVC](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html)
20 | * [ElasticSearch](http://www.elasticsearch.org/)
21 |
22 | Backend services are exposed through RESTful APIs.
23 |
24 | # Run the application
25 |
26 | To keep running the application as simple as possible, we provide a pre-built [Virtual Box](https://www.virtualbox.org/) VM managed by [Vagrant](http://www.vagrantup.com/).
27 |
28 | To run the application, please ensure that you have Virtual Box and Vagrant correctly installed and running.
29 |
30 | Then, you can follow these instructions :
31 |
32 | 1. `git clone https://github.com/Java-Geeks/mase.git`
33 | 2. `cd mase`
34 | 3. `mvn install`
35 | 4. `vagrant up`
36 | 5. browse the following URL: `http://localhost:9100/mase-web`
37 |
38 | ### Optional : packaging the VM
39 |
40 | To package the VM for further reuse without re-installing all dependencies, you can proceed as follows:
41 |
42 | 1. Package the VM into a vagrant box: `vagrant package --output precise32-mase.box`
43 | 2. Add the box to vagrant managed VMs: `vagrant box add precise32-mase precise32-mase.box`
44 | 3. Edit the `Vagrantfile`, set the property `config.vm.box` to `precise32-mase` and comment properties `config.vm.box_url` and `config.vm.provision`
45 | 4. Remove or save the box file `precise32-mase.box` to a backup directory
46 | 5. Run `vagrant up`
47 |
48 | Your VM will now be up and running without re-installing all required packages to run the application.
49 |
--------------------------------------------------------------------------------
/Vagrantfile:
--------------------------------------------------------------------------------
1 | # -*- mode: ruby -*-
2 | # vi: set ft=ruby :
3 |
4 | VAGRANTFILE_API_VERSION = "2"
5 |
6 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
7 |
8 | # Every Vagrant virtual environment requires a box to build off of.
9 | config.vm.box = "precise32"
10 |
11 | # The url from where the 'config.vm.box' box will be fetched if it
12 | # doesn't already exist on the user's system.
13 | config.vm.box_url = "http://files.vagrantup.com/precise32.box"
14 |
15 | # Provision VM with mongodb, java, tomcat and elasticsearch
16 | config.vm.provision :shell, :path => "bootstrap.sh"
17 |
18 | # MongoDB port
19 | config.vm.network :forwarded_port, guest: 27017, host: 27017
20 |
21 | # Tomcat port
22 | config.vm.network :forwarded_port, guest: 8080, host: 9100
23 |
24 | # ElasticSearch port
25 | config.vm.network :forwarded_port, guest: 9200, host: 9200
26 |
27 | end
28 |
--------------------------------------------------------------------------------
/bootstrap.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | sudo apt-get update
4 |
5 | #install mangodb
6 | echo '### Installing MongoDB ###'
7 | sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
8 | echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
9 | sudo apt-get update
10 | sudo apt-get install mongodb-10gen
11 |
12 | #install Java 7
13 | echo '### Installing Java7 ###'
14 | sudo apt-get install -y openjdk-7-jre-headless
15 |
16 | #install tomcat 7
17 | echo '### Installing Tomcat7 ###'
18 | sudo apt-get install -y tomcat7
19 |
20 | #install elasticsearch
21 | echo '### Installing ElasticSearch ###'
22 | wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.0.1.deb
23 | sudo dpkg -i elasticsearch-1.0.1.deb
24 | sudo service elasticsearch start
25 |
26 | #install Curl
27 | echo '### Installing Curl ###'
28 | sudo apt-get install -y curl
29 |
30 | #install Git
31 | echo '### Installing Git ###'
32 | sudo apt-get install -y git
33 |
34 | #create a symbolic link for the front-end to be served by apache tomcat
35 | if [ ! -d "/vagrant/mase-web/target/mase-web" ]; then
36 | mkdir -p /vagrant/mase-web/target/mase-web
37 | fi
38 | sudo ln -fs /vagrant/mase-web/target/mase-web /var/lib/tomcat7/webapps/mase-web
39 |
--------------------------------------------------------------------------------
/mase-core/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 |
--------------------------------------------------------------------------------
/mase-core/src/main/java/io/github/javageeks/mase/model/Todo.java:
--------------------------------------------------------------------------------
1 | package io.github.javageeks.mase.model;
2 |
3 | import org.springframework.data.annotation.Id;
4 | import org.springframework.data.mongodb.core.mapping.Document;
5 |
6 | /**
7 | * Todo domain object.
8 | */
9 | @Document(collection = "todos")
10 | public class Todo {
11 |
12 | @Id
13 | private String id;
14 |
15 | private String userId;
16 |
17 | private String title;
18 |
19 | private String description;
20 |
21 | private boolean status;
22 |
23 | public String getId() {
24 | return id;
25 | }
26 |
27 | public void setId(String id) {
28 | this.id = id;
29 | }
30 |
31 | public String getUserId() {
32 | return userId;
33 | }
34 |
35 | public void setUserId(String userId) {
36 | this.userId = userId;
37 | }
38 |
39 | public String getTitle() {
40 | return title;
41 | }
42 |
43 | public void setTitle(String title) {
44 | this.title = title;
45 | }
46 |
47 | public String getDescription() {
48 | return description;
49 | }
50 |
51 | public void setDescription(String description) {
52 | this.description = description;
53 | }
54 |
55 | public boolean getStatus() {
56 | return status;
57 | }
58 |
59 | public void setStatus(boolean status) {
60 | this.status = status;
61 | }
62 |
63 | @Override
64 | public String toString() {
65 | final StringBuilder sb = new StringBuilder("Todo{");
66 | sb.append("id=").append(id);
67 | sb.append(", userId=").append(userId);
68 | sb.append(", title='").append(title).append('\'');
69 | sb.append(", description='").append(description).append('\'');
70 | sb.append(", status=").append(status);
71 | sb.append('}');
72 | return sb.toString();
73 | }
74 |
75 | }
76 |
--------------------------------------------------------------------------------
/mase-core/src/main/java/io/github/javageeks/mase/model/User.java:
--------------------------------------------------------------------------------
1 | package io.github.javageeks.mase.model;
2 |
3 | import org.springframework.data.annotation.Id;
4 | import org.springframework.data.mongodb.core.mapping.Document;
5 |
6 | import java.io.Serializable;
7 |
8 | @Document(collection = "users")
9 | public class User implements Serializable {
10 |
11 | @Id
12 | private String id;
13 |
14 | private String firstName;
15 |
16 | private String lastName;
17 |
18 | private String email;
19 |
20 | private String password;
21 |
22 | public String getId() {
23 | return id;
24 | }
25 |
26 | public void setId(String id) {
27 | this.id = id;
28 | }
29 |
30 | public String getFirstName() {
31 | return firstName;
32 | }
33 |
34 | public void setFirstName(String firstName) {
35 | this.firstName = firstName;
36 | }
37 |
38 | public String getLastName() {
39 | return lastName;
40 | }
41 |
42 | public void setLastName(String lastName) {
43 | this.lastName = lastName;
44 | }
45 |
46 | public String getEmail() {
47 | return email;
48 | }
49 |
50 | public void setEmail(String email) {
51 | this.email = email;
52 | }
53 |
54 | public String getPassword() {
55 | return password;
56 | }
57 |
58 | public void setPassword(String password) {
59 | this.password = password;
60 | }
61 |
62 | @Override
63 | public String toString() {
64 | return "User[" +
65 | "id=" + id +
66 | ", firstName='" + firstName + '\'' +
67 | ", lastName='" + lastName + '\'' +
68 | ", email='" + email + '\'' +
69 | ", password='" + password + '\'' +
70 | ']';
71 | }
72 |
73 | }
--------------------------------------------------------------------------------
/mase-core/src/main/java/io/github/javageeks/mase/repository/TodoRepository.java:
--------------------------------------------------------------------------------
1 | package io.github.javageeks.mase.repository;
2 |
3 | import io.github.javageeks.mase.model.Todo;
4 | import org.springframework.data.mongodb.repository.MongoRepository;
5 |
6 | import java.util.List;
7 |
8 | /**
9 | * Interface for todo repository.
10 | */
11 | public interface TodoRepository extends MongoRepository MASE is a task manager, based on the latest web technologies which allows you to :
4 | Mase
22 | Welcome to MASE !
3 |
5 |
9 |
11 | Sign up 12 | or 13 | Sign in 14 |
15 |16 | Go to my todo list 17 |
18 | -------------------------------------------------------------------------------- /mase-web/src/main/webapp/partials/login.html: -------------------------------------------------------------------------------- 1 |You don't have an account yet ? Register here for free! 27 |
You have already an account? Sign in here 54 |
Done ? | 12 |Title | 13 |Description | 14 |Action | 15 |||
---|---|---|---|---|---|
20 | | {{todo.title}} | 21 |22 | 26 | | 27 |{{todo.description}} | 28 |29 | 33 | | 34 |delete 35 | |