Code Monkey home page Code Monkey logo

arr-links's Introduction

ARR links

ARR Links is a web application that allows users to shorten URLs, generate QR codes for the shortened links, and provides additional features like user authentication, click analytics, and more. This readme file provides an overview of the project and the technologies used.


Table of Contents


Features

  • URL Shortening: Users can enter a long URL and generate a shortened version of it.

  • QR Code Generation: The application can generate QR codes for the shortened URLs, making it easier for users to share them by downloading it.

  • User Authentication: ARR Links provides user registration and login functionality to access additional features.

  • Forgot Password: Users who forget their passwords can initiate a password reset process, including OTP verification.

  • Stateless Authentication: ARR Links uses JSON Web Tokens (JWT) for stateless authentication, ensuring secure and efficient user authentication.

  • OTP Verification: During Sign up and forgot password processes, users are required to verify their email using a one-time password (OTP).

  • Special Dashboard: Logged-in users have access to a personalized dashboard with additional functionalities and settings. where user can track there URLs clicks and analytics, user can also update their profile details using dashboard.

  • URL Click Analytics: ARR Links tracks the number of clicks and provides analytics to the user for each shortened URL.

  • Responsive & user friendly Design: Layout of website is fully responsive and user friendly. support all size of screen


Technologies used

  • MongoDB: A NoSQL database used to store user information, shortened URLs, and click analytics data.

  • Node.js: A JavaScript runtime environment used to execute server-side code.

  • ExpressJS: A web application framework for Node.js used to build the backend of ARR Links.

  • Pug: A template engine for Node.js that simplifies HTML generation and allows for dynamic content rendering.

  • JavaScript: The programming language used for client-side scripting and interactions.

  • REST API: ARR Links uses RESTful APIs to communicate between the frontend and backend.

  • CSS3: The latest version of Cascading Style Sheets used for styling the web application.

  • JWT: JSON Web Tokens are used for stateless authentication.


Screenshots and preview

  • Generate Short links and QR code
    desktop-view
  • Sign Up
    desktop-view
  • Display Different menu for Logged vs Guest user

    Display Different menu for Logged vs Guest user

Tech Stack

Client: pugJS

Server: NodeJS, ExpressJS

Database: MongoDB


Run Locally

Clone the project

  git clone https://github.com/amanrajrana/ARR-links.git

Go to the project directory

  cd ARR-links

Install dependencies

  npm install
.env variable setup

Copy .env.example file make .env file and edit it as requirement

Following variable is needed

  • JWT_SECRET_KEY secret key for Json web token signature
  • SENDER_EMAIL_ID Email Address which is use to send email
  • EMAIL_PASSWORD Password of email
  • DB_URI MongoDB uri
Start Server
  npm run start

You can use nodemon for auto restart the server

  npm run dev

App start on at PORT 3000 i.e http://127.0.0.1:3000

NOTE: Make sure you have preinstalled the following software in your local system

  • NodeJS
  • MongoDB

MongoDB server started on its default port i.e mongodb://127.0.0.1:27017

Start the server


Contributing

We welcome contributions from developers who want to help improve my ARR links web app. To contribute, please follow these steps:

  1. Fork the repository on GitHub.
  2. Make your changes and commit them to your forked repository.
  3. Submit a pull request with a detailed explanation of your changes.

FAQ

Can I use this project for my project?

Yes, This is an open-source code so you can use it anywhere you want


Feedback

If you have any feedback, please reach out to us via the following way


Lessons I Learned

This is my first full-stack project. In this project, I Learned many things. A few of them are mentioned below

  1. Build Server
  2. Build API
  3. Server static files
  4. MVC pattern
  5. Deal with Database
  6. Define Schema
  7. PUG templating engine
  8. OTP verifications
  9. Stateless and Stateful authentication
  10. JWT token
  11. AJAX request
  12. DOM manipulation
  13. And many more things :)

Authors

Aman Raj Rana

linkedin github

๐Ÿš€ About Me

MERN developer | ReactJS ๐Ÿš€ MongoDB ๐Ÿ“Š Express ๐Ÿ› ๏ธ NodeJS ๐Ÿ’ป | Clean code enthusiast | Agile methodologies | Let's build amazing web apps! ๐ŸŒ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.