a project created by URL SHORTENER TEAM
"Url shortener" is a file hosting and sharing service powered by Firebase. Users can upload files under 20MB and download hosted files using a "share code" (a short 3 word code provided by words-aas). After uploading a file, the file uploader can retrieve the share code and share it with others or delete the file at any time. Files will automatically be deleted after 21 days (WIP).
For a detailed changelog, please refer to the commit history.
- Shorten long URLs into short and convenient links.
- Personalized short URLs for each user.
- User statistics and analytics.
- Easy to use and configure.
- Option to deploy your own instance.
- File size limit of 20MB.
- URL redirection works only with proper server configuration.
- Simple and intuitive user interface.
- Fast and efficient URL shortening.
- Compact code size and optimized performance.
- Clone the repository:
-
📂 Clone this repo
-
📦 Install dependencies with
yarn
-
🏃 Start the Vite dev server with
yarn dev
-
🌎 Visit the provided link in your browser
Firebase is used to power the authentication, database, and file storage for URL SHORTENER. For security reasons, the production LIGHTING SHARE Firebase project is not available for local development on localhost
. As such, you will need to create your own Firebase project for local development purposes.
On your development Firebase project:
- Enable anonymous authentication.
- Ensure
localhost
is an authorized domain for authentication. - Enable Firestore Database and Storage features.
Replace the firebaseConfig
variable in src/util/firebase-config.ts
with the config for your Firebase project.
- 📂 Clone the repository.
git clone https://github.com/kYaRick/UrlShortener.git
- 📦 Install dependencies.
cd UrlShortener
yarn
-
⚙️ Configure the config.js file according to your environment.
Start node:
yarn build
yarn dev
C:\UrlShortener>yarn && yarn build && yarn dev
yarn install v1.22.19
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.29s.
yarn run v1.22.19
$ tsc && vite build
vite v4.3.8 building for production...
✓ 1064 modules transformed.
build/manifest.webmanifest 0.76 kB
build/index.html 1.01 kB │ gzip: 0.49 kB
build/assets/apple-touch-icon-d4eb60a4.png 12.04 kB
build/assets/kYaRick-e7f7cce9.jpg 16.89 kB
build/assets/Misha-da693569.jpg 19.90 kB
build/assets/favicon-e7e60b83.png 21.55 kB
build/assets/Anya-861598a1.jpg 153.88 kB
build/assets/upload-c427d3be.css 3.29 kB │ gzip: 1.04 kB
build/assets/index-f39ba9d0.css 17.80 kB │ gzip: 3.54 kB
build/assets/download-72783f9e.js 1.47 kB │ gzip: 0.81 kB
build/assets/file-896554eb.js 1.49 kB │ gzip: 0.81 kB
build/assets/react-filepond.esm-5838f230.js 1.73 kB │ gzip: 0.86 kB
build/assets/server-93e8f740.js 3.30 kB │ gzip: 1.64 kB
build/assets/auth-d9bd02f1.js 4.52 kB │ gzip: 2.14 kB
build/assets/workbox-window.prod.es5-dc90f814.js 5.29 kB │ gzip: 2.20 kB
build/assets/file-62202484.js 5.82 kB │ gzip: 2.47 kB
build/assets/upload-c4195b06.js 124.80 kB │ gzip: 41.36 kB
build/assets/index-690cba87.js 525.40 kB │ gzip: 174.85 kB
build/assets/firebase-8d1cee96.js 704.65 kB │ gzip: 161.84 kB
(!) Some chunks are larger than 500 kBs after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
PWA v0.14.7
mode generateSW
precache 14 entries (1372.07 KiB)
files generated
build\sw.js
build\workbox-3625d7b0.js
✓ built in 8.41s
Done in 10.41s.
If you want to say thank you and/or support active development of our team:
- Add a GitHub Star to the project!
- Leave a comment or a reaction on the tutorial of how this project was built!
Thanks so much for your interest in supporting URL SHORTENER!