Custom Bookmark Manager

MarkKeeper is a visual MERN-stack web bookmark manager designed to organize saved links. It features dual User and Admin modules, public-facing information routes (Home, About, Services, Contact), and authenticated dashboards. To preserve system integrity, it implements a single-administrator registration constraint that blocks multiple admins.

Bookmark Img 1
Bookmark Img 2
Bookmark Img 3
Bookmark Img 4
Bookmark Img 5
  • Single-Admin Registry Guard: Restricts admin registration to only once, showing a message on second attempts and forcing direct login.
  • Auto metadata scraper: Uses Cheerio to extract Open Graph images, website titles, and description banners from target URLs.
  • Folder-based organization: Allows users to categorize bookmarks into custom folders with unique naming checks per account.
  • Dynamic tag cloud: Tags bookmarks with labels and displays them in interactive sidebar chip filters for fast search results.
  • Unified Admin Panel: Grants administrators stats monitoring, user lists moderation, and global bookmark removal authority.
  1. Public Page Browsing: Visitors can access Home, About, Services, and Contact details without credentials.
  2. Auth-Guarded Workspace: Unlocks bookmark CRUD, folder management, and tag filtering immediately after registration/login.
  3. Live Autofill on Input Blur: Triggers backend scraping when the user finishes typing a URL to pre-fill the form fields.
  4. MERN Database Syncing: Integrates Mongoose schemas, compound indexes, and password hashing to synchronize data in real-time.
  5. Cascading User Deletion: Allows admins to delete standard user accounts, automatically purging their bookmarks and folders.
  • Backend:
    • Node.js
    • Express.js
    • MongoDB (Mongoose)
    • JWT (JSON Web Tokens)
    • Bcryptjs
    • Cheerio
  • Frontend:
    • React (Vite)
    • Tailwind CSS v4
    • React Router v6
    • React Hot Toast
    • React Icons
    • Axios
  • Visual Bookmark Gallery: Replaces tedious plain text browser bookmark lists with premium graphic preview cards.
  • Fast Dynamic Searching: Locates saved bookmarks in milliseconds by combining search bars, folder tabs, and tag clouds.
  • Better Workspace Focus: Categorizes bookmarks cleanly, keeping work, developer docs, and entertainment links separate.
  • Private Link Protection: Secures collections via state-of-the-art JWT session tokens and bcrypt password encryption.
  • Simple Server Administration: Enables hosts to manage registered users and moderate database storage space easily.
  1. Environment Variables Setup:
    • backend/.env
      • PORT: 3000
      • MONGO_URI: mongodb_url_string
      • JWT_SECRET: your_jwt_secret_key_here (if needed)
    • frontend/.env
      • VITE_API_URL: backend_url
  2. Deployment Overview:
    • Render or Railway for backend hosting
    • Vercel or Netlify for frontend hosting
    • MongoDB Atlas for the database
  3. Backend Deployment:
    • Push your code to GitHub.
    • Go to Render.com or Railway.app.
    • Create a new Web Service and connect your GitHub repository.
    • Choose “backend/” as the root directory.
    • Add the following environment variables on Render:
    • PORT=10000
    • MONGO_URI=your MongoDB Atlas URI
    • JWT_SECRET=your JWT secret
    • Start command: npm start (Ensure your backend/package.json includes “start”: “node server.js”)
    • After deployment, note your backend URL, e.g. https://your-backend-name.onrender.com
  4. Frontend Deployment:
    • Go to Vercel.com or Netlify.com.
    • Create a new project and connect the GitHub repo.
    • Select the “frontend/” folder as root.
    • In environment variables, set:
    • VITE_API_URL=https://your-backend-domain.com/api (or REACT_APP_API_URL if using CRA)
    • Deploy.
  5. MongoDB Atlas Setup:
    • Go to https://cloud.mongodb.com
    • Create a free cluster.
    • Add your current IP address in Network Access.
    • Create a database user and password.
    • Copy the connection string and replace username, password, and database name in MONGO_URI in backend/.env

Note: This project is for educational purposes only. Not for commercial sale.