/bones

Primary LanguageJavaScript

Hi, I'm bones

I'm a happy little skeleton. You can clone me to use as a starter on your projects! I have React, Redux, Sequelize, and Express all just rattling around in here ready to go.

I need node >= 6.7.0

If you don't have it, I'll complain and tell you how to install it.

1. Make me into something!

Create a git repo however you want to. You can fork me on Github, but you can only do that once (so weird!). You can also create a Github repo and clone it, or just do git init in an empty directory on your machine.

After you have a repo on your machine:

git remote add bones https://github.com/queerviolet/bones.git
git fetch bones
git merge bones/master

And then you'll have me! If I change—which I probably will—you can get the most recent version by doing this again:

git fetch bones
git merge bones/master

2. I need a name.

I don't have a name. I think I used to have one, but it turned to dust right along with my heart and liver and pituitary gland and all that stuff.

Anyway, I'll need one. Give me a name in package.json.

3. Start my dusty heart

Short and sweet:

npm install
npm run build-watch
npm start

npm start doesn't build, so watch out for that. The reason it doesn't build is because you probably want to watch the build and run me in separate terminals. Otherwise, build errors get all mixed in with HTTP request logging.

My anatomy

/app has the React/Redux setup. main.jsx is the entry point.

/db has the Sequelize models and database setup. It'll create the database for you if it doesn't exist, assuming you're using postgres.

/server has the Express server and routes. start.js is the entry point.

/bin has scripts. (Right now it has one script that creates a useful symlink.)

Conventions

I use require and module.exports in .js files.

I use import and export in .jsx files, unless require makes for cleaner code.

I use two spaces, no semi-colons, and trailing commas where possible. I'll have a linter someday soon.