Skip to content

sayinmehmet47/kitapKurdu

Repository files navigation

Shorturl

 

BOOK WORMS

Github top language Github language count Repository size License

About   |   Features   |   Technologies   |   Requirements   |   Starting   |   License   |   Author


🎯 About

This project comprises 5000 Turkish books available for free. I used Cloudinary to fetch and upload new books. The books are searchable, and you can access the entire library as well as monitor the latest additions. If a user cannot find a specific book in the library, they can add a comment to request assistance from other users. Other users can contribute to the library without limitations. The admin has a distinct role that allows them to delete comments and books.

The project is primarily built using ReactJS for the frontend, NodeJS for the backend, and is deployed on a Kubernetes cluster within Rancher. Additionally, I have deployed the app on Vercel, making it accessible from both the Kubernetes cluster and Vercel. When you open a pull request, automated tests will run, and your pull request will be awaiting approval. After the pull request is merged, the app will be built and simultaneously pushed to Docker Hub and Vercel. Following the completion of the app's building process in GitHub Actions, the Kubernetes cluster will be triggered to run the new image we pushed to Docker Hub, ensuring it uses the latest version. You can also run the app locally using Docker, but you'll need to obtain your own MongoDB,Cloudinary secrets and add it to the environment file. For updating the npm package, i used as a bot renovate. It opens pr for the outdated package periodically. If new book added to library user get a notification

This project is my side project, where I mostly implement new concepts and technologies I've learned. It covers most of the technologies required for a real-world application. Currently, there are 300 active users registered with and using this app.

image

image

image

image

✨ Features

✔️ You can install more than 7000 books free with one click

✔️ Books are in e-pub format

✔️ Logged in user can add new books

🚀 Technologies

The following tools were used in this project:

  • ReactJS
  • Tailwind
  • MongoDB
  • Typescript
  • NodeJS
  • Kubernetes
  • Github Actions
  • Integration test for backend
  • Prometheus
  • Graphana
  • Renovate
  • Docker
  • Cronjob
  • Caching(Node Cache)
  • Service Workers
  • Google Analytics

✅ Requirements

Before starting 🏁, you need to have Git and Node installed.

🏁 Starting

# Clone this project
$ git clone https://github.com/sayinmehmet47/kitapKurdu.git


$ cd client
$ npm install
$ npm run start

// in another terminal

$ cd backend

$ npm install
$ npm run start

#create a env file and attach your mongodb url


$ cd ..






# The server will initialize in the <http://localhost:3000>
  • to run graphana and prometheus
$ docker-compose up -d

Graphana will run on <http://localhost:4000>
Prometheus will run on <http://localhost:9090>
  • This is how it shows the metrics from prometheus in graphana dashboard

image

  • Renovate bot is working to update the dependecies authomatically

📝 License

This project is under license from MIT. For more details, see the LICENSE file.

Made with ❤️ by Mehmet Sayin

 

Back to top