Skip to content

ArcadeCode/mark-my-todos

Repository files navigation

Mark-my-todos

Tests Prettier License Bun

Mark-my-todos is designed for users who prefer a single-page todo list. I personally used a todo.md file for all my work-related tasks, but it eventually became unmanageable. So I switched to a custom solution: a todo.json file that stores all todo elements, paired with a frontend built using Vue.js + TypeScript, and Bun as the runtime.

Warning

Currently, the frontend is only in French, i18n vue.js plugging will be added later.

Features

  • Single-page interface using Vue.js.
  • Searching motor with tag support (planned feature).
  • Multi-level organization: priorities, project categories, etc.
  • Fully local and self-hosted.

Project Setup

You need three tools:

  • bun for running the backend.
  • node.js for running the frontend and for using npm as the package manager.

Note

There is a lack of coherence here. The project was initially intended to use Bun exclusively, but at some point during development, I ran npm i instead of bun i, which created a messy node_modules/. This led to issues that resulted in the current setup, where npm is used for everything: it runs Node.js for the frontend and Bun for the backend.

Then clone the repository and install dependencies:

git clone https://github.com/ArcadeCode/mark-my-todos.git
cd ./mark-my-todos/
npm install

Run in Development Mode (with Hot Reload)

npm dev

This will launch two servers:

Build for production

There are two independent builds, because Vite (the frontend bundler) cannot be minified as a standalone executable:

npm run build         # Build the backend
npm run vite build    # Build the frontend

🗺️ Roadmap

Planned features and improvements for upcoming versions:

🧱 Features

  • [v1.1.x] Add a custom build.sh script to compile both the backend and frontend into a single executable.
  • [v1.1.x] Integrate a lightweight search engine using Fuse.js.
  • [v1.2.x] Add new api endpoints to have a CRUD management of projects under api/projects/
  • [v1.2.x] Implement a calendar to show due dates and propose api connection to Google Calendar and others calendar

🛡️ Security & ⚙️ Performance

  • [v1.1.x] File Rewrite Performance Bottleneck
    All services (except /get) currently follow the pattern:
    read file → edit content → write full file, resulting in a time complexity of O(s) where s is the size of the file.
    This is unacceptable for production environments, even on local services.
    Fix planned in v1.2: Refactor all affected services to support partial updates or streaming writes.

About

Personal tasks manager

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published