Skip to content

this is my remote repos for url_manger_project (my first project)

Notifications You must be signed in to change notification settings

darshan2456/url_manager_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

92 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”— URL Manager

A production-deployed Flask web application to save, organize, and manage website URLs with smart tagging, search functionality, and PostgreSQL database integration. Live and operational at https://url-manager-project.onrender.com/

๐ŸŒŸ Features

๐Ÿ—„๏ธ Database Architecture

  • PostgreSQL Integration with Neon.tech for production
  • SQLite Fallback for local development
  • SQLAlchemy ORM for robust database operations
  • Multi-Table Schema with users, URLs, tags, and relationships
  • Deployed on Render.com with zero-downtime deployments

๐ŸŽฏ Core Functionality

  • โž• Add URLs with automatic title scraping using BeautifulSoup
  • ๐Ÿท๏ธ Smart Tagging System with predefined categories (Work, Programming, Research, Personal, News)
  • ๐Ÿ“ฆ Archive/Unarchive System for temporary URL storage
  • ๐Ÿ” Advanced Search across titles and URLs with real-time results
  • โœ… URL Validation and error handling

๐ŸŽจ Tag Management

  • ๐ŸŒˆ Color-coded tags for visual organization (Blue, Green, Purple, Orange, Red)
  • ๐Ÿ“Š Interactive Tag Sidebar with dropdown URL lists
  • โŒ Remove tags from individual URLs with one click
  • ๐Ÿ” Tag-based filtering and URL grouping

โœจ User Experience

  • ๐Ÿ” Real-time Search with 2-second auto-search delay
  • ๐Ÿ“‹ One-click URL copying with visual feedback
  • โš ๏ธ Confirmation dialogs for destructive actions
  • ๐Ÿ“ฑ Responsive design with clean, modern interface
  • ๐ŸŽฏ Separate views for Active and Archived URLs

๐Ÿ› ๏ธ Technical Stack

๐Ÿ”ง Backend

  • Framework: ๐Ÿ Flask (Python)
  • Database: ๐Ÿ˜ PostgreSQL (Production - Neon.tech) / SQLite (Development)
  • ORM: ๐Ÿ”„ SQLAlchemy
  • URL Processing: ๐Ÿ•ธ๏ธ BeautifulSoup4 for automatic title extraction
  • HTTP Requests: ๐ŸŒ Requests library with custom headers
  • URL Validation: โœ… Validators library

### ๐ŸŽจ **Frontend**
- **Templating**: Jinja2 with template inheritance
- **Styling**: Custom CSS with color-coded tag system and responsive design
- **Interactivity**: Vanilla JavaScript for tag selection, search, and URL copying
- **Layout**: Flexbox for responsive container and sidebar

## ๐Ÿš€ **Live Deployment**

### **Production Application**
๐ŸŒ **Live URL**: [https://url-manager-project.onrender.com/](https://url-manager-project.onrender.com/)

### **Production Infrastructure**
- **Platform**: Render.com
- **Database**: Neon.tech PostgreSQL
- **Status**: โœ… Fully Operational
- **Uptime**: 24/7 with auto-scaling

## ๐Ÿ› ๏ธ **Installation & Setup**

### **Local Development**
1. **Clone the repository**
   ```bash
   git clone https://github.com/darshan2456/url_manager_project.git
   cd url_manager_project
  1. Install dependencies

    pip install flask flask-sqlalchemy beautifulsoup4 requests validators
  2. Initialize the database

    python app.py

    Then visit http://localhost:5000/start to create tables and default tags

  3. Run the application

    python app.py

    Visit http://localhost:5000 to use the application

Production Deployment (Render.com)

  1. Connect your GitHub repository to Render
  2. Set environment variables:
    • DATABASE_URL: Your Neon PostgreSQL connection string
  3. Automatic deployment on git push to main branch
  4. Visit /start once to initialize database schema

๐Ÿ“ Project Structure

url_manager_project/
โ”œโ”€โ”€ ๐Ÿ app.py                 # Main Flask application with DB config
โ”œโ”€โ”€ ๐Ÿ—„๏ธ url_manager.db        # SQLite database (local development)
โ”œโ”€โ”€ ๐ŸŽจ static/
โ”‚   โ”œโ”€โ”€ style.css           # Comprehensive styling with responsive design
โ”‚   โ””โ”€โ”€ script.js           # Frontend interactions & search functionality
โ”œโ”€โ”€ ๐Ÿ“„ templates/
โ”‚   โ””โ”€โ”€ index.html          # Main template with tag system & search
โ””โ”€โ”€ ๐Ÿ“‹ requirements.txt     # Production dependencies

๐Ÿ”„ Database Configuration

Automatic Environment Detection

def get_database_uri():
    if 'DATABASE_URL' in os.environ:
        # Production - PostgreSQL (Render + Neon.tech)
        uri = os.environ['DATABASE_URL']
        if uri.startswith('postgres://'):
            uri = uri.replace('postgres://', 'postgresql://', 1)
        return uri
    else:
        # Development - SQLite (local)
        return 'sqlite:///url_manager.db'

Auto-Initialization

Visit /start to automatically:

  • Create all database tables
  • Insert default tags with colors
  • Prepare the application for first use

๐ŸŽฎ How to Use

Adding URLs

  1. Enter a valid URL in the input field (e.g., https://example.com)
  2. Select relevant tags from the color-coded buttons
  3. Click "Add URL" - the title will be automatically fetched and saved!

Searching URLs

  • Real-time Search: Type in the search box - results update automatically
  • Search Scope: Searches both active and archived URLs
  • Clear Search: Click "Clear" to return to all URLs

Managing URLs

  • ๐Ÿ”— Visit: Click on any URL to open it in a new tab
  • ๐Ÿ“‹ Copy: Use the "Copy URL" button for quick sharing (turns green when copied)
  • ๐Ÿ“ฆ Archive: Click "Archive" to temporarily hide URLs
  • ๐Ÿ“ฅ Unarchive: Restore from the archived section
  • ๐Ÿ—‘๏ธ Delete: Remove permanently with confirmation dialog
  • โŒ Remove Tags: Click the ร— on any tag to remove it from a URL

Using Tags

  • ๐ŸŽฏ Filter: Click tags in the sidebar to view related URLs
  • ๐Ÿ“Š Overview: See tag counts in the sidebar
  • ๐ŸŽจ Visual Organization: Colors help quickly identify categories
  • ๐Ÿ”ฝ Dropdown Lists: Click sidebar tags to see all URLs in that category

๐Ÿ”ง API Endpoints

  • GET / - Main application interface with search
  • GET /search - Search functionality with query parameters
  • POST /add - Add new URL with tags and auto-title fetching
  • POST /delete/<id> - Delete URL with confirmation
  • POST /archive/<id> - Archive URL
  • POST /unarchive/<id> - Unarchive URL
  • GET /remove-tag/<id>/<tag> - Remove tag from URL
  • GET /start - Initialize database (first-time setup)
  • GET /check-tables - Debug endpoint to verify database setup

๐Ÿš€ Deployment Features

Production Ready & Deployed

  • โœ… Live on Render.com with 24/7 uptime
  • โœ… Neon.tech PostgreSQL for scalable data storage
  • โœ… Environment-based configuration
  • โœ… Port configuration for cloud platforms
  • โœ… Proper database connection handling
  • โœ… Error handling and rollbacks

๐Ÿ” Search Features

  • Real-time Processing: Auto-searches after 2 seconds of typing
  • Comprehensive Search: Matches both URL titles and full URLs
  • Separate Results: Shows active and archived results separately
  • Result Counts: Displays number of matches in each category
  • Quick Clear: Easy return to full URL list

๐Ÿš€ Future Enhancements

  • ๐Ÿ‘ฅ User authentication and personal collections
  • ๐Ÿ”„ Bulk operations for multiple URLs
  • ๐Ÿ”— API endpoints for external integrations

๐Ÿ“ž Support

โญ Star this repo if you find it useful!

๐Ÿ› Found a bug? Open an issue on GitHub!

๐Ÿ’ก Have a feature request? We'd love to hear your ideas!

๐ŸŒ Using the live app? Visit https://url-manager-project.onrender.com/


Built with ๐Ÿ Flask + ๐Ÿ˜ PostgreSQL + โค๏ธ by Darshan
Successfully deployed on Render.com with Neon.tech database

About

this is my remote repos for url_manger_project (my first project)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •