Shrink.it is a powerful full-stack URL Shortening and Link Management system that allows users to create short links, track clicks, generate QR codes, and manage URLs — all with a secure authentication system and a beautiful UI.
➡️ https://shrinkit.netlify.app/
➡️ Add your demo video link here
-
User Authentication (JWT Based)
- Signup, login
- Google Login
- GitHub Login
-
URL Shortening
- Convert long URLs to short URLs
- Redirect instantly on visit
-
Click Tracking
- Every redirect increases click count
- Dashboard shows total links + clicks
-
Personal Dashboard
- View all your shortened URLs
- Copy short URL
- Delete URL
- Track clicks
-
QR Code Generator
- Create QR code for any URL
- Download or scan
-
Admin Panel
- View all users
- View all URLs
- Delete users
- Check user-specific activity
-
Fully Responsive UI
- Mobile-friendly
- Hamburger menu
- Smooth animation & clean dark theme
git clone https://github.com/8309h/shrinkit.gitcd Backend
npm installCreate a .env file inside /Backend:
PORT=8080
mongodbUrl=<your_mongo_db_uri>
normalkey=<jwt_secret_key>
refreshkey=<refresh_secret_key>
GOOGLE_CLIENT_ID=<google_id>
GOOGLE_CLIENT_SECRET=<google_secret>
GOOGLE_REDIRECT_URL=<your_redirect>
GITHUB_CLIENT_ID=<github_id>
GITHUB_CLIENT_SECRET=<github_secret>
GITHUB_REDIRECT_URL=<your_redirect>
node index.jsBackend runs on:
http://localhost:8080
Open frontend/index.html or use Live Server.
-
Register or login
-
Enter a long URL
-
Click Shrink → short URL generated
-
Copy or open short URL
-
Dashboard shows:
- Number of links
- Total click count
- URL list
-
Delete unwanted URLs
-
Admin has extended controls
| Method | Endpoint | Description |
|---|---|---|
| POST | /user/signup |
Register new user |
| POST | /user/login |
Login |
| GET | /auth/google |
Google OAuth |
| GET | /auth/github |
GitHub OAuth |
| Method | Endpoint | Description |
|---|---|---|
| POST | /url/create |
Create short URL |
| GET | /url/my |
Fetch logged-in user's URLs |
| GET | /url/all |
Fetch all URLs (Admin) |
| DELETE | /url/delete/:shortUrl |
Delete URL |
| GET | /url/:shortUrl |
Redirect to original |
| Method | Endpoint | Description |
|---|---|---|
| GET | /user/allusers |
Get all users |
| DELETE | /user/delete/:id |
Delete user |
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT Authentication
- Bcrypt
- QRCode Library
- CORS
- HTML
- CSS
- JavaScript
- SweetAlert
- Tailwind (Partial)
- FontAwesome Icons
- Netlify (Frontend)
- Render / Cyclic (Backend)
Contributions are welcome!
- Open an issue
- Submit a pull request
This project is licensed under the MIT License.
(Add your own images inside screenshots/ folder and update the paths)
./screenshots/home.png
./screenshots/login.png
./screenshots/dashboard.png
./screenshots/short-url.png
./screenshots/admin.png