Erlang Web App 2017 04 18

Luke Bakken edited this page Apr 19, 2017 · 1 revision

Day 1

The first day of a greenfield project requires that you do a bunch of housekeeping. Here's an outline of what I did on the first day of this project:

GitHub

Every project needs a home, and GitHub is that place. I originally created the project in my user organization but have since moved it to an organization I created for the end-user. Note that GitHub helpfully implements redirects when you transfer repositories between organizations.

Continuous Integration

I am very familiar with Travis CI, having used it as the CI provider for several Riak client libraries (like this). I decided to try out one of the new kids on the block, CircleCI, and set up the continuous integration builds here. The entire configuration for this build is found in this file. So far, CircleCI is working well and appears to be as good a solution as Travis CI.

Project Skeleton

My former co-worker, Shane Utt, provided a rebar3 template that will build out a bare-bones skeleton project using Cowboy and Erlydtl. I used this to bootstrap my project, and in the process made some changes to the template that I then provided back in this PR. We'll see if Shane likes them.

Storage

To keep things simple and learn some "new" technology, I'm implementing this project's storage using Mnesia, the built-in KV store for Erlang. I figure, why not use the simplest thing for this project? Also, Mnesia has been around forever and appears to be plenty robust for this project's requirements.

Code

You can check out my commits from the first day. Not a lot accomplished as I familiarized myself again with Common Test and learned me some Mnesia from scratch. Going forward I may implement features on a per-branch basis rather than just pushing to master.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.