1- # Blog List app
1+ # < p align = " center " > Blog List app </ p >
22
3- ** An app that lets users manage blog links, share, like and comment.**
3+ ### < p align = " center " > An app that lets users manage blog links, share, like and comment.</ p >
44
5- ** [ Try it out] ( ) **
5+ ### < p align = " center " >< a href = " https://blog-list-pi.now.sh/ " > Try it out</ a ></ p >
66
7- Test username/password: ** tim / tim**
7+ <p align =" center " >Test username/password: tim / tim</p >
8+
9+ ## About
810
911Frontend: React, Redux, Styled-components, Storybook
1012
11- Backend: Node, Express, MongoDB, Mongoose
13+ Backend: Node, Express, MongoDB, Mongoose, Jest
1214
1315This project started out as my submission in part 7 of the
1416[ Full Stack course] ( https://fullstackopen.com/en/part7 )
1517to learn redux and grew from there.
1618
1719## Dev build
1820
19- Requirements (works on version):
21+ Server requirements (works on version):
2022
2123- node 11.10
2224- mongodb v3.4 or mongo cloud - sign up for a
2325 [ free account] ( https://www.mongodb.com/cloud )
2426
25- Server secrets are stored in ` .env ` in project root so create the env
26- vars like the example below:
27-
28- ```
29- MONGODB_URI=mongodb+srv://tim:<password>@fullstackopen-9zjso.mongodb.net/blog-list?retryWrites=true&w=majority
30- PORT=3003
31- SECRET=jsonwebtokensuperdupersecret
32- ```
27+ Secrets are stored in ` /server/.env ` . See ` /server/.env.example ` .
3328
3429The client uses create-react-app and proxies all backend requests.
35- In order for the client to talk to the server, the port chosen above
36- needs to match the one inside ` package.json ` in ` /client `
30+ In order for the client to talk to the server, the port chosen in ` .env `
31+ needs to match the one in ` /client/package.json `
3732
3833```
3934"proxy": "http://localhost:3003",
@@ -51,18 +46,20 @@ npm run server
5146npm run storybook (for visual testing)
5247```
5348
54- ## Notes
49+ ## Additional
5550
5651Things I added on top of the project requirements:
5752
58- - pagination with client caching
59- - sort by fields
60- - multiple blog deletion
61- - form validation
62- - a design system...sort of (check out the storybook)
63- - notifications
64- - mobile responsive
65- - react-spring animations
53+ - [x] pagination with client caching
54+ - [x] sort by fields
55+ - [x] multiple blog deletion
56+ - [x] form validation
57+ - [x] a design system...sort of (check out the storybook)
58+ - [x] notifications
59+ - [x] mobile responsive
60+ - [x] react-spring animations
61+
62+ ## Outcome
6663
6764Learnt some notable things:
6865
0 commit comments