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
- Open Chrome and navigate to
chrome://extensions
- Enable Developer Mode
- Click "Load Unpacked" and select the
extension/
folder - Test your changes!
Branching & Commits
- Create branches off
main
:feat/short-title
,fix/bug-xyz
- Use Conventional Commits:
feat:
add Guard keyword togglefix:
correct timezone day splitdocs:
update README quickstartrefactor:
simplify popup event wiringchore:
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
- Fork and create a branch
- Make changes with clear commit messages
- Run and manually test:
- Backend endpoints you touched
- Extension flows (popup/blocked page) relevant to your change
- 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/orgood first issue
. - Valid PRs will be merged, approved in review, or labeled
hacktoberfest-accepted
. - Spam or low-effort PRs will be labeled
spam
and/orinvalid
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