├── .gitignore ├── server ├── .gitignore ├── .ENV ├── .docker.env ├── views │ └── error.ejs ├── .dockerignore ├── .idea │ ├── jsLibraryMappings.xml │ ├── vcs.xml │ ├── modules.xml │ ├── app1.iml │ ├── runConfigurations │ │ └── bin_www.xml │ └── workspace.xml ├── Dockerfile ├── model │ ├── initdb.js │ └── User.js ├── utils │ └── convert.js ├── routes │ └── api │ │ ├── transaction.js │ │ ├── admin.js │ │ └── users.js ├── validation │ ├── login.js │ └── register.js ├── config │ └── passport.js ├── package.json ├── test │ └── users.test.js ├── utils.js ├── app.js └── bin │ └── www ├── client ├── public │ ├── favicon.ico │ ├── logo192.png │ ├── logo512.png │ ├── robots.txt │ ├── assets │ │ └── img │ │ │ ├── search.svg │ │ │ ├── home.svg │ │ │ └── settings.svg │ ├── manifest.json │ ├── js │ │ ├── scrolling-nav.js │ │ ├── script.js │ │ ├── main.js │ │ ├── jquery.easing.min.js │ │ ├── jquery.nav.js │ │ ├── nivo-lightbox.js │ │ └── popper.min.js │ ├── css │ │ ├── styles.css │ │ ├── owl.theme.css │ │ ├── owl.carousel.css │ │ ├── main.map │ │ ├── nivo-lightbox.css │ │ ├── magnific-popup.css │ │ └── responsive.css │ └── index.html ├── src │ ├── components │ │ ├── App │ │ │ ├── App.css │ │ │ └── App.js │ │ ├── Admin │ │ │ └── Admin.js │ │ ├── Layout │ │ │ ├── Layout.js │ │ │ ├── Navbar.js │ │ │ ├── SideBar.js │ │ │ ├── Landing.js │ │ │ ├── AppView.js │ │ │ ├── header.css │ │ │ ├── Header.js │ │ │ └── layout.css │ │ ├── PrivateRoute │ │ │ └── PrivateRoute.js │ │ ├── Dashboard │ │ │ └── Dashboard.js │ │ ├── UserTable │ │ │ └── UserTable.js │ │ ├── Auth │ │ │ ├── login.css │ │ │ ├── login.js │ │ │ └── register.js │ │ └── InfoUser │ │ │ └── InfoUser.js │ ├── actions │ │ ├── types.js │ │ └── authActions.js │ ├── reducers │ │ ├── index.js │ │ ├── errorReducer.js │ │ └── authReducer.js │ ├── setupTests.js │ ├── App.test.js │ ├── utils │ │ └── setAuthToken.js │ ├── reportWebVitals.js │ ├── index.js │ ├── routes │ │ ├── PublicRoute.js │ │ └── PrivateRoute.js │ ├── store.js │ ├── index.css │ ├── assets │ │ └── logo.svg │ └── lib │ │ └── bootstrap │ │ ├── bootstrap-reboot.min.css │ │ └── bootstrap-reboot.css ├── .dockerignore ├── Dockerfile ├── .gitignore ├── package.json └── README.md ├── test └── example.test.js ├── docker-compose-prod.yml ├── README.md ├── package.json ├── docker-compose.yml └── docker-compose-dev.yml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npv2k1/MERN/HEAD/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npv2k1/MERN/HEAD/client/public/logo192.png -------------------------------------------------------------------------------- /client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npv2k1/MERN/HEAD/client/public/logo512.png -------------------------------------------------------------------------------- /client/src/components/App/App.css: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #root, 4 | .App { 5 | height: 100%; 6 | } -------------------------------------------------------------------------------- /client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /server/.ENV: -------------------------------------------------------------------------------- 1 | JWT_SECRET=ABCDEF$123 2 | MONGO_HOSTNAME=localhost 3 | MONGO_DB=ndata 4 | MONGO_PORT=27017 -------------------------------------------------------------------------------- /server/.docker.env: -------------------------------------------------------------------------------- 1 | JWT_SECRET=ABCDEF$123 2 | MONGO_HOSTNAME=mongo 3 | MONGO_DB=ndata 4 | MONGO_PORT=27017 -------------------------------------------------------------------------------- /server/views/error.ejs: -------------------------------------------------------------------------------- 1 |
<%= error.stack %>4 | -------------------------------------------------------------------------------- /client/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | upload 3 | export 4 | converage 5 | .git 6 | .tmp 7 | .vscode 8 | .github 9 | .env -------------------------------------------------------------------------------- /server/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | upload 3 | export 4 | converage 5 | .git 6 | .tmp 7 | .vscode 8 | .github 9 | .env -------------------------------------------------------------------------------- /client/src/actions/types.js: -------------------------------------------------------------------------------- 1 | export const GET_ERRORS = "GET_ERRORS"; 2 | export const USER_LOADING = "USER_LOADING"; 3 | export const SET_CURRENT_USER = "SET_CURRENT_USER"; 4 | export const USER_UPDATE = "USER_UPDATE"; 5 | -------------------------------------------------------------------------------- /server/.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 |
22 | You are logged into a full-stack{" "} 23 | MERN app 👏 24 |
25 | 26 | 38 |16 | Create a (minimal) full-stack app with user authentication via 17 | passport and JWTs 18 |
19 || Full name | 23 |Birthday | 24 |Gender | 25 |Phone | 27 |Address | 28 |Balance | 29 | 30 | 31 ||
|---|---|---|---|---|---|---|
| admin | 33 |10/09/2001 | 34 |male | 35 |36 | | 37 | | 38 | | 39 | |
| {user.name} | 43 |{user.birthday ? new Date(user.birthday).toLocaleDateString():'none'} | 44 |{user.gender?"Male":"Female"} | 45 |{user.email} | 46 |{user.phone} | 47 |{user.address} | 48 |{user.balance} | 49 |
60 | Thông tin cá nhân 61 |
62 |'+ $this.options.errorMessage +'