├── .gitignore
├── README.md
├── client
├── build
│ ├── asset-manifest.json
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ ├── robots.txt
│ └── static
│ │ ├── css
│ │ ├── main.773b908a.css
│ │ └── main.773b908a.css.map
│ │ └── js
│ │ ├── main.1b0e90fa.js
│ │ ├── main.1b0e90fa.js.LICENSE.txt
│ │ └── main.1b0e90fa.js.map
├── package-lock.json
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── robots.txt
└── src
│ ├── App.js
│ ├── components
│ ├── AddTaskForm.js
│ ├── Dashboard.js
│ ├── EditTaskForm.js
│ ├── Footer.js
│ ├── Login.js
│ ├── Logout.js
│ ├── Navbar.js
│ ├── Signup.js
│ ├── Task.js
│ ├── TaskList.js
│ └── css
│ │ ├── AddTaskForm.css
│ │ ├── Dashboard.css
│ │ ├── EditTaskForm.css
│ │ ├── Footer.css
│ │ ├── Login.css
│ │ ├── Signup.css
│ │ ├── Task.css
│ │ └── TaskList.css
│ ├── contexts
│ └── TaskContext.js
│ ├── hooks
│ ├── useFormInput.js
│ └── useToggle.js
│ ├── index.js
│ └── services
│ └── service.js
├── package-lock.json
├── package.json
└── server
├── db
└── mongoose.js
├── emails
└── email.js
├── index.js
├── middleware
└── authToken.js
├── models
├── taskModel.js
└── userModel.js
└── routers
├── taskRouter.js
└── userRouter.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | config/
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Task manager
2 | An online task manager app that you can access from anywhere as long as you remember your email address.
3 |
4 | ### Signup form
5 | A user provides their details and upon verification they are saved in the database and a welcome email notification is sent to them.
6 |
7 | 
8 |
9 | ### Login form
10 | If the user already has an account they can login and track their tasks (delete or add them)
11 |
12 | 
13 |
14 | ### Dashboard
15 | 
16 | 
17 |
18 |
--------------------------------------------------------------------------------
/client/build/asset-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": {
3 | "main.css": "/static/css/main.773b908a.css",
4 | "main.js": "/static/js/main.1b0e90fa.js",
5 | "index.html": "/index.html",
6 | "main.773b908a.css.map": "/static/css/main.773b908a.css.map",
7 | "main.1b0e90fa.js.map": "/static/js/main.1b0e90fa.js.map"
8 | },
9 | "entrypoints": [
10 | "static/css/main.773b908a.css",
11 | "static/js/main.1b0e90fa.js"
12 | ]
13 | }
--------------------------------------------------------------------------------
/client/build/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JohnMwendwa/node-react-task-manager/14ad231a294dbd4d2b61eab6d52caa98a114a91d/client/build/favicon.ico
--------------------------------------------------------------------------------
/client/build/index.html:
--------------------------------------------------------------------------------
1 |
63 |
Welcome!
64 |
Hey ${name}
65 |
I'm glad to see you're using Task App to plan your everyday tasks. Please feel free to recommend any feature improvements that you may like to see in the app.
66 |
For any feedback, just reply to this email - I'll reply to you as soon as possible.
67 |
68 |
72 |
76 |
77 |
78 |
79 | `
80 | })
81 | }
82 |
83 | const sendCancellationEmail = (email,name)=>{
84 | sgMail.send({
85 | to:email,
86 | from:'dev.johnmwendwa@gmail.com',
87 | subject:'We regret to see you leave',
88 | html:`We regret to see you leave. We hope to see you back soon.
90 |