MicrosoftStudentChapter / Linky

An open source URL shortener server with custom URLs, expiry dates being developed in GoLang
6 stars 16 forks source link

Linky

Linky is an open-source project designed to provide redirect solutions with custom-named links using any pre-existing domain name. This solution is perfect for creating short, memorable links that can redirect users to any URL, simplifying the sharing and management of links.

Example

Create a custom-named link: https://abcd.xyz/my-form => Redirects to a Google Form

Table of Contents

Features

Getting Started

Follow these steps to set up the project on your local machine and start creating custom-named redirects.

Prerequisites

Before you begin, ensure you have the following:

Frontend Development Backend Development
1. JavaScript and ReactJS 1. Golang for creating backend services
2. CSS and MUI for styling 2. Redis as the database
3. API Integration 3. Optimization Techniques for performance
4. Familiarity with tools like Git, GitHub, IDE, Figma, Illustrator 4. Familiarity with tools like Git, GitHub, IDE

Installation

  1. Clone the Repository
    
    git clone https://github.com/yourusername/linky.git
    cd linky
  2. Running the Server
    • Navigate to the backend directory and run the server and download all the necessary dependencies :
      
      cd backend
      go run main.go
    • You'll need to install Redis manually or use Docker for installation. Ensure your server is running before starting the frontend.
  3. Running the Frontend
    • Navigate to the frontend directory, install dependencies, and start the development at your local server:
      
      cd frontend
      npm install
      npm run dev

Deployment

To deploy Linky in a production environment, use Docker:

  1. Run Docker Compose
    • Execute the following command in the root directory of the project (before starting the frontend, ensure Docker is running to manage dependencies effectively):
      
      cd backend
      docker compose up -d
  2. Deploy Frontend
    • You can deploy the frontend anywhere and configure it to point to the backend URL for link management.
    • Note - Always run the docker first instead of frontend

Contribution

Contributions are always welcome!To contribute -