Reduced.to is a modern web application that reduces the length of link URL. So it's easier to remember, share and track.
App
ยท
Report Bug
ยท
Request Feature
๐ Table of Contents
๐ About The Project
๐ฅ Built With
List of frameworks/libraries used to bootstrap the project.
๐ Getting Started
๐ Prerequisites
List of things you need to run the project locally and how to install them.
- npm
npm install npm@latest -g
๐ป Installation
- Fork / Clone this repository
- Open the repository using the
reduced.to.code-workspace
file (VSCode) - Install NPM packages
npm install && npm run install:all
- Copy
backend/example.env
to.env
and fill it properly (see below). - Copy
frontend/example.env
to.env
and fill it properly (see below). - Run the backend:
npm run start:backend
- Run the frontend:
npm run start:frontend
๐ฉโ๐ป Development
You will find 3 folders
- ๐
root
- ๐จ
reduced.to/frontend
- ๐ฆ
reduced.to/backend
Running the frontend in dev mode
- Move to the frontend folder
cd ./frontend
- Run the project (it will open a new window)
npm run dev
- Vite will be now listening for changes in the code and reloading the solution
Running the backend in dev mode
- Move to the backend folder
cd ./backend
- Run the project (be sure that you built the frontend before)
npm run start:dev
- Nest will be now listening for changes in the code and reloading the solution
๐ณ Docker
- You can easily build your application in a docker container and run it.
- Build and run frontend instance
docker build frontend/ -t reduced.to-front docker run -p 5000:5000 reduced.to-front
- Build and run backend instance
docker build backend/ -t reduced.to-back
docker run -p 3000:3000 reduced.to-back
- Simply go to your favourite browser and visit
http://localhost:5000/
to see your application.
๐ Docker compose
- In case you have docker installed, you can single-click deploy and test your changes by running the following and going to
http://localhost:5000/
on your browser.docker compose -f docker-compose.dev.yml up
๐ท Configuration
For the minimal configuration the following settings have to be changed in their .env
file:
Backend configuration
-
DATABASE_URL: Database connection string
-
FRONT_DOMAIN: Frontend instance domain
-
JWT_SECRET: Jwt secret string
-
NOVU_API_KEY: Get it from https://novu.co/
Frontend configuration
- API_DOMAIN: Domain of your backend instance
Happy Hacking !
๐ฑโ๐ป Usage
Simply copy and paste a URL into the provided area. Then click shorten URL! Your URL has now been shortened!
๐งฑ Roadmap
- Migrate backend to NestJS
- Migrate frontend to Qwik
- Better README
- Generate QRCode
- Split front-end into components
- Better UI
- Animations
- Logo
- Dark/Light mode
- Fonts?
- Improve front-end components
- Backend tests
- Front-end Tests
- Logs
- Add a statistics page
- Add more ideas
Just create a Pull request already ๐
See the open issues for a full list of proposed features (and known issues).
๐ฅ Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star โญ!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
๐ Contributors
๐ License
Distributed under the MIT License. See LICENSE.txt
for more information.
๐ Contact
Project Link: https://github.com/origranot/reduced.to