Code Monkey home page Code Monkey logo

create-cinnamon-project's Introduction

create-cinnamon-project

Create a new Cinnamon project with ease.

Cinnamon | Apollo Software Limited

Cinnamon is a framework for building web API backend applications. It is built on Koa, and provides a declarative syntax for defining routes, middleware, and more, that 'just works'.

Prerequisites

Cinnamon is designed around yarn 2+, specifically and thus requires it to be installed. You can install it with:

$ npm install -g yarn

Expedited Setup

If you want to get started with Cinnamon as quickly as possible and your project uses a database, before creating your project you should set up a PostgreSQL database with the following credentials:

  • Hostname: localhost (default)
  • Port: 5432 (default)
  • Database: {project-name}
  • Username: {project-name}
  • Password: {project-name}123

create-cinnamon-project will attempt to trigger an automatic database migration with Cinnamon on project creation, and will use the above defaults to do so.

Alternatively, pre-define a cinnamon.toml file in the root of your project with the database credentials you wish to use.

Tip: Select all of the features that Cinnamon offers in a stock install by pressing a on all of the feature selection prompts.

Usage

$ yarn create cinnamon-project <project-name>

or with npm:

$ npx create-cinnamon-project <project-name>

License

MIT License. See LICENSE for details.

create-cinnamon-project's People

Contributors

samjakob avatar

create-cinnamon-project's Issues

Add versioning to templates

As a blocker to #2, we need a way to version templates (and we should probably get out ahead on specifying which template was used, in case we go as far as adding multiple templates in future).

  • Decide on a method of storing the version system and template name.
  • Document in this ticket how we can check for updates with version number (if custom infrastructure needed, so be it).
  • Add the versioning mechanism to create-cinnamon-project.

Decouple template(s) from `create-cinnamon-project`

To avoid having to publish new changes of the create-cinnamon-project npm package each time the template is updated, it would be ideal if up-to-date versions of the template(s) could be fetched (e.g., from this repository, or from another repository) automatically.

Maybe if the templates are kept in this repository, they can just be checked for updates first (e.g., based on commit hash).

Add upgrade path to templates

We need some way of applying an 'upgrade' or migration to a project that was created with a template (on the simple end is upgrading packages, more challenging would be performing automated code/API changes).

At the very least we could spit out a list of changes the user must make to their project after updating.

  • Close #3
  • Implement the update checker proposed in #3 into create-cinnamon-project
  • Determine DX for performing updates on a project (probably limited to those created with create-cinnamon-project).
  • Come up with a good way to compute user-facing change-logs so users know what's involved in updating their project (and what can be automated)
  • Determine the scope of automatic updates

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.