{"id":24313540,"url":"https://github.com/auriorajaa/link_shortener","last_synced_at":"2026-04-20T12:03:05.939Z","repository":{"id":272553809,"uuid":"916945905","full_name":"auriorajaa/link_shortener","owner":"auriorajaa","description":"A modern web application for shortening URLs built with Django REST Framework and React.js. This project provides a simple and efficient way to create shortened URLs with custom slugs, track click analytics, and manage your links through a clean user interface built with Chakra UI.","archived":false,"fork":false,"pushed_at":"2025-01-15T06:13:47.000Z","size":272,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T14:43:33.928Z","etag":null,"topics":["auriorajaa","chakra-ui","django-rest-framework","djangorestframework","drf","drf-jwt","full-stack-web-development","react","reactjs","sqlite"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/auriorajaa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-15T03:51:24.000Z","updated_at":"2025-01-15T11:02:21.000Z","dependencies_parsed_at":"2025-01-15T08:19:47.832Z","dependency_job_id":"be814c17-4b66-4090-83bc-0b4394e911d3","html_url":"https://github.com/auriorajaa/link_shortener","commit_stats":null,"previous_names":["auriorajaa/link_shortener"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/auriorajaa/link_shortener","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auriorajaa%2Flink_shortener","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auriorajaa%2Flink_shortener/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auriorajaa%2Flink_shortener/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auriorajaa%2Flink_shortener/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/auriorajaa","download_url":"https://codeload.github.com/auriorajaa/link_shortener/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auriorajaa%2Flink_shortener/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32046394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auriorajaa","chakra-ui","django-rest-framework","djangorestframework","drf","drf-jwt","full-stack-web-development","react","reactjs","sqlite"],"created_at":"2025-01-17T09:12:20.630Z","updated_at":"2026-04-20T12:03:05.921Z","avatar_url":"https://github.com/auriorajaa.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Link Shortener\n\nA modern web application for shortening URLs built with Django REST Framework and React.js. This project provides a simple and efficient way to create shortened URLs with custom slugs, track click analytics, and manage your links through a clean user interface built with Chakra UI.\n\n## OverView\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/07c3bacd-7d63-4b20-9331-fa159cac9b65\" width=\"49%\" /\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/433cb5a8-81d8-456f-9e1e-f674f62d90e2\" width=\"49%\" /\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/fb4349fa-1992-472f-bdc0-f4d5cf620547\" width=\"49%\" /\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/30c6a0af-b89d-4404-a7ba-7da3707104e8\" width=\"49%\" /\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/bab21253-57e6-4c05-9306-e1cb43658483\" width=\"49%\" /\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/fb9edb88-7705-42a6-ab71-7992f2e7788e\" width=\"49%\" /\u003e\n\u003c/div\u003e\n\n## 🚀 Features\n\n- User authentication with JWT (Simple JWT)\n- Create shortened URLs with custom slugs\n- Track link click analytics\n- Responsive UI built with Chakra UI\n- RESTful API with Django REST Framework\n- SQLite database for easy setup\n\n## 📋 Prerequisites\n\nBefore you begin, ensure you have the following installed:\n- Python (3.8 or higher)\n- Node.js (14.0 or higher)\n- npm (6.0 or higher)\n- Git\n\n## 🛠 Installation\n\n### Backend Setup\n\n1. Clone the repository\n```bash\ngit clone https://github.com/auriorajaa/link_shortener.git\ncd link_shortener\n```\n\n2. Create and activate virtual environment\n```bash\n# Windows\npython -m venv venv\nvenv\\Scripts\\activate\n\n# Linux/MacOS\npython3 -m venv venv\nsource venv/bin/activate\n```\n\n3. Install Python dependencies\n```bash\ncd backend\npip install -r requirements.txt\n```\n\n4. Setup database\n```bash\ncd main\npython manage.py migrate\n```\n\n5. Create superuser (admin)\n```bash\npython manage.py createsuperuser\n```\n\n6. Start the Django development server\n```bash\npython manage.py runserver\n```\n\nThe backend server will start at `http://localhost:8000`\n\n### Frontend Setup\n\n1. Navigate to the frontend directory from the project root\n```bash\ncd frontend\n```\n\n2. Install dependencies\n```bash\nnpm install\n```\n\n3. Start the development server\n```bash\nnpm start\n```\n\nThe frontend application will start at `http://localhost:3000`\n\n## 🏗 Project Structure\n\n```\nlink_shortener/\n├── backend/\n│   └── main/\n│       ├── main/\n│       │   ├── settings.py\n│       │   ├── urls.py\n│       │   └── wsgi.py\n│       ├── linkshortener/\n│       │   ├── models.py\n│       │   ├── views.py\n│       │   ├── urls.py\n│       │   └── serializers.py\n│       ├── myuser/\n│       │   ├── models.py\n│       │   ├── views.py\n│       │   ├── urls.py\n│       │   └── serializers.py\n│       └── manage.py\n└── frontend/\n    ├── package.json\n    ├── public/\n    └── src/\n```\n\n## ⚙️ Backend Dependencies\n\nThe backend uses several key Django packages:\n- Django REST Framework\n- djangorestframework-simplejwt\n- django-cors-headers\n\nThese are all included in the `requirements.txt` file.\n\n## 🔧 Frontend Dependencies\n\nKey frontend packages include:\n- @chakra-ui/react: ^2.8.2\n- react-router-dom: ^7.1.1\n- jwt-decode: ^4.0.0\n- framer-motion: ^6.5.1\n\n## 🔒 Authentication\n\nThe application uses JWT (JSON Web Tokens) for authentication with the following configuration:\n- Access token lifetime: 3 days\n- Refresh token lifetime: 5 days\n- Custom token serializer: `myuser.serializers.MyTokenObtainPairSerializer`\n\n## 🌐 CORS Configuration\n\nCORS is enabled for all origins in development mode. This is configured in `settings.py`:\n```python\nCORS_ALLOW_ALL_ORIGINS = True\n```\n\n## 💻 Development\n\n### Running the Backend\n```bash\ncd backend/main\npython manage.py runserver\n```\n\n### Running the Frontend\n```bash\ncd frontend\nnpm start\n```\n\nThe application uses a proxy configuration to forward API requests to the backend:\n```json\n{\n  \"proxy\": \"http://localhost:8000\"\n}\n```\n\n## ⚠️ Troubleshooting\n\n1. **CORS Issues**\n   - Ensure the Django server is running on port 8000\n   - Check that `CORS_ALLOW_ALL_ORIGINS = True` is set in settings.py\n   - Verify the proxy setting in frontend's package.json\n\n2. **JWT Authentication Issues**\n   - Check token expiration times in settings.py\n   - Ensure you're using the correct token format in requests\n   - Verify SIMPLE_JWT settings in Django settings\n\n3. **Database Issues**\n   - Make sure all migrations are applied\n   - Check if db.sqlite3 file exists and has proper permissions\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the MIT License.\n\n## 👥 Author\n\n- Aurio Raja - [GitHub](https://github.com/auriorajaa)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauriorajaa%2Flink_shortener","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fauriorajaa%2Flink_shortener","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauriorajaa%2Flink_shortener/lists"}