Skip to content

ftrucli is a command-line interface used to find food trucks near a geospatial coordinate (especially in San Francisco).

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE-DATA
Notifications You must be signed in to change notification settings

SpaceKatt/ftrucli

Repository files navigation

ftrucli

Build Status

ftrucli is a Food Truck CLI used to find food trucks near a geospatial coordinate (especially in San Francisco).

MVP Meta

This section describes the author's intent while building the minimum viable product (MVP) for trucli (and will be refactored once project is beyond MVP stage).

Foundational Intent

Above and beyond all else, the intent of this project is to...

  • Demonstrate author's values
  • Showcase problem solving process
  • Curate collaboration environment (provide ideal open-source dev experience)
  • Cut a release ~3 hours after init commit

MVP Design Intent

The following areas of focus drove the design of the trucli MVP...

  • Implement bare minimum feature set (give at least five (5) food trucks, given a coordinate pair)
  • Prioritize production rediness by focusing on...
    • Organization
    • Design
    • Testing
    • Deployment
    • Documentation
  • Design for extensibility

Out of Scope for MVP

Out of scope features for the MVP...

  • --open-now - filter for open food trucks
  • data caching - all queries will be against the SF SODA endpoint
  • search by street address, using the Bing Maps API
  • using an app token (and storing it in a .env file or Azure Key Vault)

Initial Design Description

The CLI will follow the basic flow of the following diagram...

User journey sequence diagram)

Author may or may not have time to implement factories for extensibility. If they do, then the Output class will be the first refactoring candidate (to output results in either a prettified table or raw json).

CLI Instructions

Installation

Usage

Development

Dependencies

This section describes how to set up the project's build toolchain.

Install node14, using nvm

# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
source ~/.bashrc

# Install node14
nvm install 14
nvm use 14

Install pnpm and heft

npm install --global pnpm
pnpm install --global @rushstack/heft

NOTE: Since this project uses pnpm, please use it to install new packages (instead of npm). This helps maintain the pnpm-lock.yaml file.

Build

This project uses heft as a build coordinator.

heft build

Test

This project uses heft as a test orchestrator (jest under the covers).

heft build

Linting

This project uses eslint for linting. (TSLint is now deprecated.)

CI/CD

This section details this project's CI and CD practices.

Continuous Integration

Continuous integration is performed on TravisCI, as defined by .travis.yml. Heft is installed, used to build the project, then used to test the project.

Continuous Deployment

Continuous deployment is out of scope, but on the roadmap.

The plan is to use GitHub actions to "watch" branches of the pattern release/* and publish built artifacts to a npm repo.

Publishing

npm Publishing

Versioning

Decision Log

Decision Brief Description
Rushstack used as project tool chain Rushstack provides us with build and CLI tools.
TravisCI used for CI TravisCI is this project's continuous integration tool.

About

ftrucli is a command-line interface used to find food trucks near a geospatial coordinate (especially in San Francisco).

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE-DATA

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published