Pen Down..Thoughts Up! 🖋
Table of Contents
A website for taking notes. The website allows you to login either as a user and taking notes and reading them.
A user can register themselves using a valid email id and a strong password. This website implements CRUD routes. User can Create, Read and Update notes.
Delete route is under development right now.
Frontend is deployed on netlify cloud-service and Backend is deployed on Heroku cloud-platform.
- Website is made responsive and funcitonal for mobile users also. So users on any device can get access to our website.
- User's session is stored in the browser hence he retains his login in the browser.
- Users can sign in themselves and create Notes.
- Users can read all the Notes by the User.
- Users can update their Notes.
- Users can log out of the website and hence terminate their session from the browser.
-
User Routes
- Register : To register the User
- Login : To sign in the User
-
Events
- Getall : Get all notes by the User.
- Create : To create a note for the User.
- Update : To update a note by the User.
- Delete : To delete a particular note by the User.
- SQL Injection
- User is logged in to site through E-mail Verification system.
- We used parameterized queries and input validation to prevent SQL Injection attacks.
- User Authentication
- We added Password Validation for users to enter strong passwords.
- Passwords are not stored as plain-texts they are hashed and salted then stored in the database.
- No critical information like the password of the user is sent into the session.
- Cross-Site Scripting Attacks
- We enabled CORS to permit loading of resources from other sites.
- We enabled Helmet in our backend which prevents our website from XSS attacks upto some extent.
- Helmet provieds our site with Content-Security-Policy (CSP) which also prevents XSS attacks.
I enabled compression middleware to compress response bodies for all request that traverse through the middleware.
- HTML
- CSS
- JavaScript
- Particle.js
- FontAwesome
- SweetAlerts2
- NodeJS
- ExpressJS
- Nodemon
- Bcrypt
- JsonWebToken
- CORS
- pg
- Password-Validator
- Router
- Dotenv
- Helmet
- Compression
- Fork the repository.
- Clone the repository
git clone https://github.com/shreshthgoyal/bluenote-frontend.git
- Open the folder in which you cloned the repository.
- Open all the files in your code editor
code .
- Open index.html to go to the landing page of the website.
- Fork the repository.
- Clone the repository
git clone https://github.com/shreshthgoyal/bluenote-backend.git
- Open the folder in which you cloned the repository.
- Run this command to install all the packages
npm install
- Create a new .env file to store required enviorment variables.
- Create your own secret key to hash and salt passwords and store it in SECRET_KEY in your .env file.
- Create your own PostgresSQL Database locally or on ElephantSQL. All the PSQL queries are present in database folder.
- Once hosted add the hosted URL in DB_URL in your .env file.
- Now on your terminal run this command to start your server
npm run