URL SHORTER MICROSERVICE

Wakatime coding time badge GitHub release GitHub last commit GitHub commit activity GitHub contributors GitHub repo file count GitHub repo size GitHub license

CONTENTS:

  1. FEATURES
  2. PREREQUISITES
  3. SETUP
  4. RUNNING THE SCRIPT
  5. ERROR HANDLING
  6. HOSTING
  7. USED PACKAGES
  8. TOOLS
  9. ARTICLES
  10. DO NOT FORGET TO DO
  11. TUTORIALS
  12. INSPIRATIONS
  13. CONTRIBUTE
  14. CONTRIBUTORS
  15. SPECIAL THANKS
  16. LICENSE
  17. CONTACT

1. FEATURES

  1. Create short URL
  2. Redirect to the original URL
  3. Get all URLs

2. PREREQUISITES


3. SETUP

  1. Clone the repository and navigate to the directory:

    git clone https://github.com/montasim/url-shortener-microservice.git
    cd url-shortener-microservice
  2. Install the dependencies:

    yarn install
  3. Configuring the Environment:

    Create a .env.development or .env.staging or .env.production file in the root directory of the project and populate it with the necessary environment variables. See the .env.example file for an example.


4. RUNNING THE SCRIPT

  1. Running the Application:

    To start the application in development mode, use:

    yarn dev

    This will run the server with nodemon, automatically restarting when any changes are made.

  2. To build and run the application in production mode, use:

    yarn start

    This will build the application and start the server using the built files.

    This script first builds the project by linting the code, fixing lint issues, running prettier, and then starts the application with pm2.

  3. Testing:

    To run the tests configured with Jest, use:

    yarn test

    This will build the project and then run all the Jest tests.

  4. Linting and Code Formatting:

    • To check for linting errors:

      yarn lint:check
    • To fix linting errors:

      yarn lint:fix
    • To check if files are formatted correctly:

      yarn prettier:check
    • To format files:

      yarn prettier:fix
  5. Generating Documentation:

    To generate code documentation with JSDoc, run:

    yarn generate-docs

    This will create documentation based on your JSDoc comments.

  6. Release Management:

    To create a new release, you can use:

    yarn release

    This will automatically bump the version, update the CHANGELOG, and create a commit and a tag.

    For minor or major releases:

    yarn release:minor
    yarn release:major
  7. Cleanup:

    To clean up dependencies and rebuild the project:

    yarn clean

    This command initializes the auto cleanup process and then forces a rebuild.

Docker

  1. Build the Docker Compose Services:

    yarn docker:build-dev
  2. Run the Docker Compose Services:

    yarn docker:run-dev
  3. Stop the Containers:

    yarn docker:stop-dev
  4. Rebuild the Containers:

    yarn docker:rebuild-dev

5. ERROR HANDLING


6. HOSTING

Deploy to Vercel

Step-by-step guide on setting up your own Vercel instance:

Vercel is the recommended option for hosting the files since it is free and easy to set up.

  1. Go to vercel.com.
  2. Click on Log in. Login page
  3. Sign in with GitHub by pressing Continue with GitHub. Sign in with GitHub
  4. Sign in to GitHub and allow access to all repositories if prompted.
  5. Fork this repo.
  6. Go back to your Vercel dashboard.
  7. To import a project, click the Add New... button and select the Project option. Add new project
  8. Click the Continue with GitHub button, search for the required Git Repository and import it by clicking the Import button. Alternatively, you can import a Third-Party Git Repository using the Import Third-Party Git Repository -> link at the bottom of the page. Select GitHub project
  9. Create a personal access token (PAT) here and enable the repo and user permissions (this allows access to see private repo and user stats).
  10. Copy all the .env.development file as environment variables in the Vercel dashboard.
  11. Click deploy, and you're good to go. See your domains to use the API!

7. USED PACKAGES


8. TOOLS

  1. WebStorm
  2. Postman
  3. Swagify.io

9. ARTICLES


10. DO NOT FORGET TO DO


11. TUTORIALS



13. CONTRIBUTE

Contributions are always welcome! Please read the contribution guidelines and contributor license agreement.


14. CONTRIBUTORS

contributors


15. SPECIAL THANKS


16. LICENSE

Licence


17. CONTACT

linkedin icon github icon github icon web icon gmail icon facebook icon x icon