Skip to content

Latest commit

 

History

History
83 lines (58 loc) · 2.02 KB

File metadata and controls

83 lines (58 loc) · 2.02 KB

Contributing to TimeMap

Thank you for your interest in contributing! We welcome contributions of all kinds — bug reports, feature requests, documentation improvements, and code.

Getting Started

Prerequisites

  • Node.js >= 18
  • Docker & Docker Compose

Local Development

# 1. Clone and enter the repo
git clone https://github.com/timemap-project/timemap.git
cd timemap

# 2. Set up environment variables
cp .env.example .env.local

# 3. Start infrastructure (PostgreSQL + Meilisearch)
docker-compose up -d

# 4. Install dependencies
npm install

# 5. Run database migrations
npm run db:migrate

# 6. Seed the database with sample data
npm run db:seed

# 7. Start the development server
npm run dev

The app will be available at http://localhost:5000 (or the port configured in apps/web/package.json).

Indexing Search Data

After seeding or modifying database content, push data to Meilisearch:

npm run search:index

Project Structure

apps/
  web/          — Next.js frontend (React 19, Next.js 16)
packages/
  db/           — Drizzle ORM schema and database utilities
  schema/       — Shared TypeScript types and interfaces
  eslint-config/— Shared ESLint configuration
  typescript-config/ — Shared TypeScript configuration

Code Style

  • We use ESLint and Prettier for code formatting
  • Run npm run lint and npm run check-types before submitting a PR
  • Run npm run format to auto-format your code

Pull Requests

  1. Fork the repository and create a feature branch (git checkout -b feature/your-feature)
  2. Make your changes
  3. Ensure lint and type checks pass (npm run lint && npm run check-types)
  4. Commit with a clear, descriptive message
  5. Push to your fork and submit a Pull Request

Reporting Issues

When filing a bug, please include:

  • What you expected to happen
  • What actually happened
  • Steps to reproduce
  • Your environment (OS, Node.js version, browser)

License

By contributing, you agree that your contributions will be licensed under the MIT License.