lincal


Namelincal JSON
Version 0.3.1 PyPI version JSON
download
home_pageNone
SummaryLinear Calendar Integration - Visualize Linear issues on a calendar interface
upload_time2025-07-13 22:39:56
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords linear calendar task-management flask
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LinCal - Linear Calendar

A web application that displays Linear issues on a calendar interface. Similar to lincal.app, this app allows you to visualize your Linear tasks in a calendar view.

## Features

- View Linear issues on a calendar by due date
- Filter issues by team and state
- View detailed information about each issue
- Link directly to issues in Linear
- Responsive design

## Installation Options

### Option 1: Install from PyPI (Recommended)

1. Install using pip or UV:
   ```bash
   # Using pip
   pip install lincal
   
   # Or using UV (recommended)
   pip install uv
   uv pip install lincal
   ```

2. Create a `.env` file in your working directory:
   ```
   LINEAR_API_KEY=lin_api_xxxxxxxxxxxx
   PORT=5000
   ```
   > You can generate an API key in Linear by going to Settings > API > Personal API Keys
   > The PORT is optional and defaults to 5001 if not specified

### Option 2: Install from Source

1. Clone this repository
2. Install UV if you don't have it already:
   ```
   pip install uv
   ```
3. Create and activate a virtual environment:
   ```
   uv venv
   # On Windows
   .venv\Scripts\activate
   # On macOS/Linux
   source .venv/bin/activate
   ```
4. Install dependencies:
   ```
   uv pip install -e .
   ```
5. Create a `.env` file by copying `.env.example`:
   ```
   cp .env.example .env
   ```
6. Add your Linear API key and optional port to the `.env` file as shown above.

## Setup (Using pip - Legacy)

1. Clone this repository
2. Install dependencies:
   ```
   pip install -r requirements.txt
   ```
3. Follow steps 5-6 above for environment setup.

## Running the Application

### If installed from PyPI

Run the application from any directory where you have a `.env` file with your Linear API key:

```bash
# If using UV
uv run -m lincal

# If using standard Python
python -m lincal
```

### If installed from source

Navigate to the project directory and run:

```bash
# If using UV (recommended)
uv python -m lincal

# Or with standard Python
python -m lincal

# Alternative: run the module directly
python lincal/__main__.py
```

The application will be available at http://localhost:5001 by default (or the port specified in your `.env` file)

## Development

### Project Structure

```
linear-cal/
├── app.py                # Flask application
├── requirements.txt      # Python dependencies
├── .env                  # Environment variables (not committed)
├── templates/
│   └── index.html        # Main HTML template
└── static/
    ├── css/
    │   └── styles.css    # Application styles
    └── js/
        └── calendar.js   # Calendar functionality
```

### API Endpoints

- `/api/issues` - Get Linear issues within a date range
- `/api/teams` - Get all teams from Linear

## Distribution and Deployment

### Distribution with UV

To distribute this application so others can install it, you have several options:

#### 1. GitHub Repository (Recommended)

Share your GitHub repository URL. Users can install directly from GitHub:

```bash
# Install UV if not already installed
pip install uv

# Create and activate a virtual environment
uv venv
# On Windows
.venv\Scripts\activate
# On macOS/Linux
source .venv/bin/activate

# Install the app directly from GitHub
uv pip install git+https://github.com/yourusername/linear-cal.git
```

#### 2. PyPI Publication

Publish to PyPI for installation with UV:

```bash
# Build the package
uv pip install build
python -m build

# Upload to PyPI
uv pip install twine
twine upload dist/*
```

Users can then install with:
```bash
uv pip install lincal
```

### Deployment

This application can be deployed to platforms like Heroku, Render, or any service that supports Python web applications.

Make sure to set the `LINEAR_API_KEY` environment variable in your deployment environment.

#### Deployment with UV

If deploying to a custom server, install UV and use it for dependency management:

```bash
# On your server
pip install uv
uv venv
source .venv/bin/activate
uv pip install git+https://github.com/yourusername/linear-cal.git

# Set environment variable
export LINEAR_API_KEY=your_api_key

# Run with gunicorn (for production)
uv pip install gunicorn
gunicorn app:app
```

## Technologies Used

- Backend: Flask (Python)
- Frontend: HTML, CSS, JavaScript
- Calendar: FullCalendar
- API Integration: Linear GraphQL API

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "lincal",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "linear, calendar, task-management, flask",
    "author": null,
    "author_email": "Vishal Gandhi <igandhivishal@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/a4/a3/db3d195ec9cd92294167353feaa9cedeb979cce29452ffef4fe183985e53/lincal-0.3.1.tar.gz",
    "platform": null,
    "description": "# LinCal - Linear Calendar\r\n\r\nA web application that displays Linear issues on a calendar interface. Similar to lincal.app, this app allows you to visualize your Linear tasks in a calendar view.\r\n\r\n## Features\r\n\r\n- View Linear issues on a calendar by due date\r\n- Filter issues by team and state\r\n- View detailed information about each issue\r\n- Link directly to issues in Linear\r\n- Responsive design\r\n\r\n## Installation Options\r\n\r\n### Option 1: Install from PyPI (Recommended)\r\n\r\n1. Install using pip or UV:\r\n   ```bash\r\n   # Using pip\r\n   pip install lincal\r\n   \r\n   # Or using UV (recommended)\r\n   pip install uv\r\n   uv pip install lincal\r\n   ```\r\n\r\n2. Create a `.env` file in your working directory:\r\n   ```\r\n   LINEAR_API_KEY=lin_api_xxxxxxxxxxxx\r\n   PORT=5000\r\n   ```\r\n   > You can generate an API key in Linear by going to Settings > API > Personal API Keys\r\n   > The PORT is optional and defaults to 5001 if not specified\r\n\r\n### Option 2: Install from Source\r\n\r\n1. Clone this repository\r\n2. Install UV if you don't have it already:\r\n   ```\r\n   pip install uv\r\n   ```\r\n3. Create and activate a virtual environment:\r\n   ```\r\n   uv venv\r\n   # On Windows\r\n   .venv\\Scripts\\activate\r\n   # On macOS/Linux\r\n   source .venv/bin/activate\r\n   ```\r\n4. Install dependencies:\r\n   ```\r\n   uv pip install -e .\r\n   ```\r\n5. Create a `.env` file by copying `.env.example`:\r\n   ```\r\n   cp .env.example .env\r\n   ```\r\n6. Add your Linear API key and optional port to the `.env` file as shown above.\r\n\r\n## Setup (Using pip - Legacy)\r\n\r\n1. Clone this repository\r\n2. Install dependencies:\r\n   ```\r\n   pip install -r requirements.txt\r\n   ```\r\n3. Follow steps 5-6 above for environment setup.\r\n\r\n## Running the Application\r\n\r\n### If installed from PyPI\r\n\r\nRun the application from any directory where you have a `.env` file with your Linear API key:\r\n\r\n```bash\r\n# If using UV\r\nuv run -m lincal\r\n\r\n# If using standard Python\r\npython -m lincal\r\n```\r\n\r\n### If installed from source\r\n\r\nNavigate to the project directory and run:\r\n\r\n```bash\r\n# If using UV (recommended)\r\nuv python -m lincal\r\n\r\n# Or with standard Python\r\npython -m lincal\r\n\r\n# Alternative: run the module directly\r\npython lincal/__main__.py\r\n```\r\n\r\nThe application will be available at http://localhost:5001 by default (or the port specified in your `.env` file)\r\n\r\n## Development\r\n\r\n### Project Structure\r\n\r\n```\r\nlinear-cal/\r\n\u251c\u2500\u2500 app.py                # Flask application\r\n\u251c\u2500\u2500 requirements.txt      # Python dependencies\r\n\u251c\u2500\u2500 .env                  # Environment variables (not committed)\r\n\u251c\u2500\u2500 templates/\r\n\u2502   \u2514\u2500\u2500 index.html        # Main HTML template\r\n\u2514\u2500\u2500 static/\r\n    \u251c\u2500\u2500 css/\r\n    \u2502   \u2514\u2500\u2500 styles.css    # Application styles\r\n    \u2514\u2500\u2500 js/\r\n        \u2514\u2500\u2500 calendar.js   # Calendar functionality\r\n```\r\n\r\n### API Endpoints\r\n\r\n- `/api/issues` - Get Linear issues within a date range\r\n- `/api/teams` - Get all teams from Linear\r\n\r\n## Distribution and Deployment\r\n\r\n### Distribution with UV\r\n\r\nTo distribute this application so others can install it, you have several options:\r\n\r\n#### 1. GitHub Repository (Recommended)\r\n\r\nShare your GitHub repository URL. Users can install directly from GitHub:\r\n\r\n```bash\r\n# Install UV if not already installed\r\npip install uv\r\n\r\n# Create and activate a virtual environment\r\nuv venv\r\n# On Windows\r\n.venv\\Scripts\\activate\r\n# On macOS/Linux\r\nsource .venv/bin/activate\r\n\r\n# Install the app directly from GitHub\r\nuv pip install git+https://github.com/yourusername/linear-cal.git\r\n```\r\n\r\n#### 2. PyPI Publication\r\n\r\nPublish to PyPI for installation with UV:\r\n\r\n```bash\r\n# Build the package\r\nuv pip install build\r\npython -m build\r\n\r\n# Upload to PyPI\r\nuv pip install twine\r\ntwine upload dist/*\r\n```\r\n\r\nUsers can then install with:\r\n```bash\r\nuv pip install lincal\r\n```\r\n\r\n### Deployment\r\n\r\nThis application can be deployed to platforms like Heroku, Render, or any service that supports Python web applications.\r\n\r\nMake sure to set the `LINEAR_API_KEY` environment variable in your deployment environment.\r\n\r\n#### Deployment with UV\r\n\r\nIf deploying to a custom server, install UV and use it for dependency management:\r\n\r\n```bash\r\n# On your server\r\npip install uv\r\nuv venv\r\nsource .venv/bin/activate\r\nuv pip install git+https://github.com/yourusername/linear-cal.git\r\n\r\n# Set environment variable\r\nexport LINEAR_API_KEY=your_api_key\r\n\r\n# Run with gunicorn (for production)\r\nuv pip install gunicorn\r\ngunicorn app:app\r\n```\r\n\r\n## Technologies Used\r\n\r\n- Backend: Flask (Python)\r\n- Frontend: HTML, CSS, JavaScript\r\n- Calendar: FullCalendar\r\n- API Integration: Linear GraphQL API\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Linear Calendar Integration - Visualize Linear issues on a calendar interface",
    "version": "0.3.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/ivishalgandhi/linear-cal/issues",
        "Homepage": "https://github.com/ivishalgandhi/linear-cal"
    },
    "split_keywords": [
        "linear",
        " calendar",
        " task-management",
        " flask"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7edb8c844a2cc2187b43510b8980862643cfbdb25d3bcee0515ac59eff7775ec",
                "md5": "25bdcd8cdc78b649a0ba6c9e600d8e04",
                "sha256": "a510a844fbbfd45a73353c917e33f42293a676cdc6c47c87d1e208c3868395f5"
            },
            "downloads": -1,
            "filename": "lincal-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "25bdcd8cdc78b649a0ba6c9e600d8e04",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15393,
            "upload_time": "2025-07-13T22:39:56",
            "upload_time_iso_8601": "2025-07-13T22:39:56.015896Z",
            "url": "https://files.pythonhosted.org/packages/7e/db/8c844a2cc2187b43510b8980862643cfbdb25d3bcee0515ac59eff7775ec/lincal-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a4a3db3d195ec9cd92294167353feaa9cedeb979cce29452ffef4fe183985e53",
                "md5": "1f76f59e0b1e717d07477ab09caab5f4",
                "sha256": "539d72e15a5fd442df26a14b6a1e7ffc34a8185a9a1fbda1565e574d1a34e4cb"
            },
            "downloads": -1,
            "filename": "lincal-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "1f76f59e0b1e717d07477ab09caab5f4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15919,
            "upload_time": "2025-07-13T22:39:56",
            "upload_time_iso_8601": "2025-07-13T22:39:56.843258Z",
            "url": "https://files.pythonhosted.org/packages/a4/a3/db3d195ec9cd92294167353feaa9cedeb979cce29452ffef4fe183985e53/lincal-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 22:39:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ivishalgandhi",
    "github_project": "linear-cal",
    "github_not_found": true,
    "lcname": "lincal"
}
        
Elapsed time: 0.42095s