Skip to content

im-junaid/Clip

Repository files navigation

icon Clip – Bookmark Manager

Stable Release

Clip is a full-stack bookmark manager built with Django (Python) and enhanced with AI. It lets users securely store and organize favorite website links, mobile apps, desktop apps, etc., in the form of bookmarks with minimal effort.

Featuring AI-powered content analysis, infinite scroll for seamless browsing. Bookmark with names, descriptions, URLs, tags, and import/export functionality while also providing an intuitive admin dashboard.

🛠️ Made With

Python Django PostgreSQL Tailwind CSS HTML CSS JavaScript

📸 Screenshots

Home Signin
Home page Screenshot Signin page Screenshot
Dashboard Profile
Dashboard Page Screenshot Profile Page Screenshot

✨ Key Features

Feature Description Status
🤖 AI Auto-fill Automatically generates a bookmark's title, description, and tags from a URL using the Gemini API.
📜 Infinite Scroll Seamlessly browse all your bookmarks on the dashboard without clicking through pages.
✏️ Full CRUD Create, read, update, and delete bookmarks with ease.
🔍 Search & Filter Instantly find any bookmark with a powerful search and filtering system.
📂 Import / Export Easily back up or transfer your collection with JSON file import and export.
⚙️ Admin Dashboard A complete admin panel to manage all users and their bookmarks.

🛠️ Tech Stack

Category Technology
Backend Python, Django
Database PostgreSQL, SQLite3 (for development)
Frontend HTML, Tailwind CSS, JavaScript
AI Integration Google Gemini API

🚀 Getting Started

Follow these steps to set up the project locally:

Prerequisites

  • Python 3.10+
  • Git

Installation

  1. Clone the Repository:

    git clone https://github.com/im-junaid/Clip.git
    cd Clip
  2. Create a Virtual Environment:

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install Dependencies:

    pip install -r requirements.txt

🔄 Use SQLite (development only)
In clip/settings.py, comment out the PostgreSQL DATABASES block and uncomment (or add) the SQLite configuration:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
> **Note:** If you are not using PostgreSQL, the project will default to using PostgreSQL.
Optimized fast searching and filtering is not supported by SQLite3
  1. Set Up Environment Variables: Create a .env file in the project root and add the following:

    DEBUG="True"
    SECRET_KEY="your-secret-key"
    ALLOWED_HOSTS="127.0.0.1,localhost"
    
    # Google Gemini API Key
    GEMINI_API_KEY="your-gemini-api-key"
    
    # Email settings (optional)
    EMAIL_HOST_USER=""
    EMAIL_HOST_PASSWORD=""
    
    # PostgreSQL DB (optional)
    DB_NAME=""
    DB_USER=""
    DB_PASSWORD=""
    DB_HOST=""
    DB_PORT=5432
  2. Apply Migrations:

    python manage.py makemigrations
    python manage.py migrate
  3. Create Superuser (Admin Account):

    python manage.py createsuperuser
  4. Run the Development Server:

    python manage.py runserver

    Visit: http://127.0.0.1:8000


📦 Project Structure

├── accounts/         # User authentication & profile management
│   ├── static/       # (e.g., profile.js)
│   └── templates/    # (e.g., signin.html)
│
├── bookmark/         # Core bookmark app
│   ├── static/       # (e.g., dashboard.js)
│   └── templates/    # (e.g., dashboard.html)
│
├── clip/             # Django project settings & URL configuration
├── manage.py         # Django management script
└── requirements.txt  # Python dependencies

📜 License

This project is licensed under the MIT License. See LICENSE for more information.


👤 Contact

Project Link: https://github.com/im-junaid/Clip

About

Clip - Bookmark Manager built with Django that lets users securely save, organize, and manage bookmarks.

Topics

Resources

Stars

Watchers

Forks