This is the Bookmark Manager app to save favourite website links.
After user is authorised with OpenID (in this case Google), the app provides ability to:
-
get the list of bookmarks saved by the user
-
save, rename, delete a bookmark
-
create, rename, delete categories
If the user is new, he/she is going to be provided with default generic bookmarks and folders which could be easily deleted.
Requirements:
Make sure you've installed Docker and Docker Compose]
-
git clone
git@github.com:nattts/bookmark-manager.git
. -
make sure Docker is running on your local machine.
-
cd
into main directory and rundocker-compose up
.
Might take a little while to install all necessary dependencies.
- in the browser open http://127.0.0.1:3000
API documentation is available at http://127.0.0.1:5000/api-docs
npm test
This project's architecture is inspired by Uncle Bob's 'The Clean Architecture'. This architecture attempts to integrate some of the leading modern architecture like Hexagonal Architecture, Onion Architecture, Screaming Architecture into one main architecture. It aims to achieve good separation of concerns. Like most architecture, it also aims to make the application more flexible to inevitable changes in client requirements
Application is separated into 4 different layers:
- Use cases
- Interface
- Infrastructure
- Frameworks
├── README.md
├── api
│ ├── Dockerfile
│ ├── api-doc
│ │ └── swaggerDoc.json
│ ├── app.js
│ ├── lib
│ │ ├── frameworks
│ │ ├── infrastructure
│ │ ├── interface
│ │ └── use-cases
│ ├── package-lock.json
│ ├── package.json
│ └── tests
│ └── use-cases
├── client
│ ├── Dockerfile
│ ├── README.md
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ ├── index.html
│ │ ├── manifest.json
│ │ └── robots.txt
│ └── src
│ ├── App.css
│ ├── App.js
│ ├── auth0-spa.js
│ ├── components
│ ├── index.css
│ ├── index.js
│ └── utils
└── docker-compose.yml
- Export and import of bookmarks.
Node.js Express.js MongoDB Jest Auth0 Swagger Docker