A production-deployed Flask web application to save, organize, and manage website URLs with tagging, search functionality, and PostgreSQL integration.
Live application: https://url-manager-project.onrender.com/
- PostgreSQL integration with Neon.tech for production
- SQLite fallback for local development
- SQLAlchemy ORM for database abstraction
- Multi-table schema with users, URLs, tags, and relationships
- Deployed on Render.com with automatic deployments
- Add URLs with automatic title scraping using BeautifulSoup
- Tagging system with predefined categories (Work, Programming, Research, Personal, News)
- Archive / Unarchive functionality for temporary storage
- Search across titles and URLs
- Tag-based filtering and grouping
- Color-coded tags for visual organization
- Tag sidebar with dropdown URL lists
- Remove tags from individual URLs
- Search with auto-trigger after typing
- One-click URL copying with feedback
- Confirmation dialogs for destructive actions
- Separate views for active and archived URLs
- Framework: Flask (Python)
- Database: PostgreSQL (Production – Neon.tech) / SQLite (Development)
- ORM: SQLAlchemy
- HTML Parsing: BeautifulSoup4
- HTTP Requests: Requests
- URL Validation: Validators
- Templating: Jinja2 with template inheritance
- Styling: Custom CSS with tag color system
- Interactivity: Vanilla JavaScript
- Layout: Flexbox for responsive container and sidebar
Live URL: https://url-manager-project.onrender.com/
- Platform: Render.com
- Database: Neon.tech PostgreSQL
- Status: Operational
- Clone the repository
git clone https://github.com/darshan2456/url_manager_project.git
cd url_manager_project- Install dependencies
pip install flask flask-sqlalchemy beautifulsoup4 requests validators- Initialize the database
python app.pyThen visit:
http://localhost:5000/start
This creates tables and default tags.
- Run the application
python app.pyVisit:
http://localhost:5000
url_manager_project/
├── app.py # Main Flask application
├── instance/
│ ├── url_manager.db # SQLite database (development)
├── static/
│ ├── style.css # Application styling
│ └── script.js # Frontend interactions
├── templates/
│ └── index.html # Main interface template
└── requirements.txt # Project dependencies
- Enter a valid URL (e.g.,
https://example.com) - Select relevant tags
- Click Add URL
The application automatically fetches the page title.
- Type in the search field
- Results update automatically
- Clear search to return to the full list
- Open links directly from the interface
- Copy URLs with the copy button
- Archive URLs for temporary removal
- Restore archived URLs
- Delete URLs permanently
- Remove tags from individual entries
- Filter URLs by tag
- View tag counts in the sidebar
- Expand tag groups to view associated URLs
- Auto-search after typing
- Matches both titles and URLs
- Active and archived results displayed separately
- Result counts for each category
- Bulk operations for URLs
- Browser extension to add websites on the go
If you find the project useful, consider starring the repository.
Bug reports and feature requests can be submitted via GitHub issues. You are welcome to open PRs and issues for the same.
Live application: https://url-manager-project.onrender.com/
Built with Flask and SQLAlchemy. Developed and maintained by Darshan.