Project Structure

This repository contains two main parts:

Chrome Extension

Located in extension/ folder

Backend API

Node.js + Express in backend/ folder

Quick Links

Getting Started

Prerequisites

  • Node.js 18+ and npm
  • MongoDB (local or Atlas)
  • Google Chrome (for loading the extension)

Backend Setup

cd backend
npm install

# Create .env file with:
MONGODB_URI=mongodb://localhost:27017/timemachine
JWT_SECRET=your-long-secret

npm run dev

Extension Setup

  1. Open Chrome and navigate to chrome://extensions
  2. Enable Developer Mode
  3. Click "Load Unpacked" and select the extension/ folder
  4. Test your changes!

Branching & Commits

  • Create branches off main: feat/short-title, fix/bug-xyz
  • Use Conventional Commits:
    • feat: add Guard keyword toggle
    • fix: correct timezone day split
    • docs: update README quickstart
    • refactor: simplify popup event wiring
    • chore: bump deps

Coding Guidelines

  • JavaScript only (no framework). Keep changes minimal and focused.
  • Avoid broad reformatting. Keep existing style and file layout.
  • For UI changes, include screenshots/gifs in the PR.
  • For backend changes, describe any schema or API changes and test steps.

Submitting a Pull Request

  1. Fork and create a branch
  2. Make changes with clear commit messages
  3. Run and manually test:
    • Backend endpoints you touched
    • Extension flows (popup/blocked page) relevant to your change
  4. Open a PR against main with:
    • Linked issue (e.g., "Closes #123")
    • Summary of changes + screenshots (when UI changes)
    • Notes on testing and any follow-ups

Hacktoberfest Notes

  • The repository carries the hacktoberfest topic during the event.
  • Issues intended for contributors are labeled hacktoberfest and/or good first issue.
  • Valid PRs will be merged, approved in review, or labeled hacktoberfest-accepted.
  • Spam or low-effort PRs will be labeled spam and/or invalid and closed.

Ready to Contribute?

Fork the repository, make your changes, and submit a pull request. We review all contributions and provide feedback!

View on GitHub