An open API service indexing awesome lists of open source software.

https://github.com/ariessa/snipit

✂️ Snips long URLs into short URLs.
https://github.com/ariessa/snipit

postgresql ruby ruby-on-rails

Last synced: 6 months ago
JSON representation

✂️ Snips long URLs into short URLs.

Awesome Lists containing this project

README

          

# ✂️ Snipit

Snipit (stylised as snipIt) is the ultimate tool for transforming those long, clunky URLs into short, snazzy links that are super easy to share. no more struggling with endless web addresses – just snip, snap, and share the url!


## Table of Contents

- [User Interfaces](#user-interfaces)
- [Tools and Technologies Used](#tools-and-technologies-used)
- [Features](#features)
- [Installation](#installation)
- [Prerequisites for production](#prerequisites-for-production)
- [Setup](#setup)
- [Development](#development)
- [Production](#production)
- [Usage](#usage)
- [Run the application](#run-the-application)
- [Development](#development-1)
- [Production](#production-1)
- [Run the tests](#run-the-tests)
- [Development](#development-2)
- [Production](#production-2)
- [Stop the application](#stop-the-application)
- [Development](#development-3)
- [Production](#production-3)
- [Diagrams](#diagrams)
- [Architecture Diagram](#architecture-diagram)
- [Entity Relationship Diagram](#entity-relationship-diagram)


## User Interfaces


## Tools and Technologies Used

- Ruby
- Rails
- Bundler
- Nginx
- Certbot
- Docker
- Docker Compose
- Hostinger
- Excalidraw
- Draw.io
- Heroicons
- TailwindCSS
- Make

## Features

- Convert a target URL into a short URL that can be publicly shared and accessed
- Provide a usage report for the application such as the number of clicks, originating geolocation and timestamp of each visit to a short URL


## Installation

### Prerequisites for production

Before starting, make sure you have the following installed:

- Docker
- Docker Compose v2
- Make


### Setup

Clone the repository

```bash
git clone https://github.com/ariessa/snipit.git

cd snipit
```


#### Development

Create file `.env` based on file `.env.example` and populate values accordingly

```bash
cp .env.example .env
```


#### Production

Create file `.env.prod` based on file `.env.example` and populate values accordingly

```bash
cp .env.example .env.prod
```


## Usage

### Run the application

#### Development

Create and migrate server

```bash
rails db:prepare
```


Start the server

```bash
bin/dev
```


#### Production

Build and run the containers

```bash
make up
```


Open your web browser and navigate to `https://localhost:3000`.


### Run the tests

#### Development

```bash
rails test
```


#### Production

```bash
make tests
```


### Stop the application

#### Development

Hit `Ctrl + C`


#### Production

```bash
make down
```


## Diagrams

### Architecture Diagram


### Entity Relationship Diagram