fastify-bookmarkly
Table of Contents
About
fastify-bookmarkly is an example backend API using the Fastify framework, MongoDB, and a clean architecture.
Parts of the original code are from Bill Sourour's DevMastery Comments Microservice API and Clean RESTful API with Node.js.
The project is a learning repository where I explore how to code a "clean" Node API from scratch.
Built With
- Node.js & Fastify
- Docker & Docker Compose
- MongoDB
Installation
Prerequisites:
- Node.js
- Docker
- Docker Compose
1. Clone the repository:
$ git clone git@github.com:sophiabrandt/fastify-bookmarkly.git && cd fastify-bookmarkly
2. Adjust configuration
Check the config
folder and change the name of variables as needed.
3. Install dependencies
$ pnpm install # or npm install
4. Use Docker and Docker Compose to spin up the Mongo Database
$ docker-compose up -d
5. Create Database schema
$ pnpm run db # or npm run db
Usage
$ pnpm run dev # or npm run dev
Visit http://localhost:3000/bookmarks with your browser.
Swagger documentation is available under http://localhost:3000/docs.
Example request with curl:
curl -X POST \
'http://127.0.0.1:3000/bookmarks/' \
-H 'Content-Type: application/json' \
-d '{"title": "hacker news", "description": "news for programmers", "url": "https://hackerweb.app"}'
To create a production build:
$ pnpm run build # or npm run build
$ pnpm run start # or npm run start
Tests
$ pnpm run test # or npm run test
For now, the tests contain stubs, but are are already connected to MongoDB.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Copyright © 2020 Sophia Brandt
MIT Licence
Acknowledgments
- Bill Sourour for DevMastery Comments Microservice API and Clean RESTful API with Node.js