Libraries and their use-case:
- bcrypt: Securely hashes passwords to protect user data.
- dotenv: Manages environment variables for configuration separation.
- express: Provides a flexible framework for web application development.
- express-async-handler: Simplifies error handling for asynchronous code in Express.
- express-rate-limit: Prevents abuse by limiting incoming requests.
- jsonwebtoken: Generates and verifies secure JSON Web Tokens for authentication.
- mongoose: Simplifies MongoDB interactions with schema-based modeling.
Server: Node, Express, MongoDB, JWT
To run this project, you will need to add the following environment variables to your .env file
PORT
MONGODB_URI
(Setup MongoDB locally and use Compass)
JWT_SECRET
This project has been containerized using Docker for easy deployment and reproducibility.
-
Install Docker Desktop: Docker Desktop Installation Guide
-
Pull the Docker image from my public repository:
docker pull ayushsingh170/containerized-notes-and-search-backend
-
Run the Docker container:
docker run -d -p 5000:5000 ayushsingh170/containerized-notes-and-search-backend
-
Clone the repository:
git clone git@github.com:Ayush170-Future/Notes-and-Search-app.git
-
Change into the project directory:
cd Notes-and-Search-app
-
Switch to the master branch:
git checkout master
-
Install dependencies:
npm install
-
Run the backend:
npm run dev
-
Run unit tests:
npm run test
Hey! This is Ayush Singh. I'm a backend developer and a Bitcoin core contributor from India.
Most recently, I was chosen among 45 students from all over the world for the Summer of Bitcoin internship, where I was responsible for making open-source contributions to Bitcoin Core. I made 4 PRs to the original Bitcoin you must have heard about in the news, one of them is already merged and is in production. Along with that, I'm a backend developer who has worked on many full-stack applications related to Blockchain and Core CS technologies. I'm also a great problem solver as I do a lot of competitive programming, I'm a Specialist on Codeforces, an ICPC India regionalist, and a Knight on Leetcode.
Besides my technical knowledge and experience, I'm very interested in philosophy and I'm a self-driven person, I don't need external motivation to work hard, I'm a naturally hardworking being, who gets things done.