Skip to content

Elimpizza/minima-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

152 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Minima List

A beautiful, minimalistic project management application with kanban board, calendar integration, and local SQLite storage.

✨ Features

  • πŸ“Š Kanban Board: Drag-and-drop task management with customizable columns
  • πŸ“… Calendar View: Visualize tasks in month/week/day views
  • πŸ‘₯ Multi-user Support: Local authentication and user management
  • 🎨 Customizable Themes: Dark/Light mode with 12 emphasis colors
  • πŸ“ Rich Text Editor: Format task descriptions
  • 🏷️ Custom Fields: Add custom fields to tasks (text, number, date, select, multi-select, user)
  • πŸ” Advanced Filtering: Filter tasks by assignee, dates, and custom fields
  • πŸ’Ύ Local Storage: All data stored locally using SQLite - no cloud dependencies
  • πŸ“± Responsive Design: Optimized for desktop and mobile
  • πŸ”„ Import/Export: Backup and restore your data

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation (3 steps!)

  1. Clone and enter directory
git clone https://github.com/yourusername/minima-list.git
cd minima-list
  1. Install dependencies
npm install
  1. Start the app
npm run dev:full

That's it! Open http://localhost:2900 in your browser.

The app will automatically:

  • Create a local SQLite database
  • Set up all required tables
  • Be ready to use immediately

First Time Usage

  1. Sign Up: Create your first account (it will be an admin account)
  2. Create Project: Click "New Project" in the sidebar
  3. Start Working: Add items, drag them between columns, customize as needed!

πŸ“¦ Building for Production

# Build frontend
npm run build

# Start production server
npm run start:server

πŸ› οΈ Configuration

No configuration required! The app works out of the box with sensible defaults.

Optional: Create a .env file if you want to customize:

# Custom database location (optional, defaults to ./server/minima.db)
DATABASE_PATH=./data/my-database.db

πŸ“ Project Structure

minima-list/
β”œβ”€β”€ src/                # Frontend React application
β”‚   β”œβ”€β”€ components/     # React components
β”‚   β”œβ”€β”€ pages/         # Page components
β”‚   β”œβ”€β”€ lib/           # Utilities and database client
β”‚   └── hooks/         # Custom React hooks
β”œβ”€β”€ server/            # Backend Express server
β”‚   β”œβ”€β”€ server.js      # Express server with SQLite
β”‚   β”œβ”€β”€ database.js    # Database operations
β”‚   └── minima.db      # SQLite database (auto-created)
β”œβ”€β”€ public/            # Static assets
└── package.json       # Dependencies and scripts

🎯 Key Features Explained

Kanban Board

  • Create unlimited projects and columns
  • Drag & drop items between columns
  • Assign multiple users to items
  • Set due dates and times
  • Add rich text descriptions
  • Comment on items (coming soon)

Calendar View

  • Switch between Month, Week, and Day views
  • Drag items to change dates
  • Filter by multiple projects
  • Quick "Today" inbox access

Custom Fields

  • Define project-specific fields
  • Support for multiple field types
  • Reorder fields via drag & drop
  • Set default values

Data Management

  • Export all data as JSON
  • Import from backups
  • Merge databases from different instances
  • Switch between database files

🐳 Docker Deployment (Optional)

Create a Dockerfile:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 2901
CMD ["npm", "run", "start:server"]

Build and run:

docker build -t minima-list .
docker run -p 2901:2901 -v $(pwd)/data:/app/server minima-list

πŸ“š Available Scripts

  • npm run dev - Start frontend development server
  • npm run dev:server - Start backend server
  • npm run dev:full - Start both frontend and backend
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run start:server - Start production server

πŸ”§ Tech Stack

  • Frontend: React, TypeScript, Vite, Tailwind CSS, shadcn/ui
  • Backend: Node.js, Express, better-sqlite3
  • Database: SQLite (local file-based)
  • Drag & Drop: react-dnd
  • Rich Text: TipTap editor
  • Icons: Lucide React

🀝 Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

MIT License - use freely for personal or commercial projects.

πŸ› Troubleshooting

Database not creating?

  • Ensure the server directory exists and has write permissions
  • Check console for any error messages

Port already in use?

  • Change ports in vite.config.ts and server/server.js

Can't drag items?

  • Ensure you're logged in as admin or the item is marked as "open"

πŸ™ Acknowledgments


Made with ❀️ for minimalist productivity

About

simple, local and minimal list-based organization app

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors