This is a hackathon boilerplate for new Node.js applications created by Major League Hacking. It is for hackers looking to get started quickly on a new hackathon project using the Node.js environment.
- Installation Guide - How to get started with a new Node.js app
- User Guide - How to develop apps created with this starter project
- Contributing Guide - How to contribute to the project
This project requires the following tools:
- Node.js - The JavaScript environment for server-side code.
- NPM - A Node.js package manager used to install dependencies.
- PostgreSQL - A relational database system.
To get started, install NPM and Postgres on your local computer if you don't have them already. A simple way for Mac OS X users to install Postgres is using Postgres.app. Here is a Windows guide for installing PostgresSQL.
Step 1. Clone the code into a fresh folder
$ git clone https://github.com/MLH/mlh-hackathon-nodejs-starter.git
$ cd mlh-hackathon-nodejs-starter
Step 2. Install Dependencies.
Next, we need to install the project dependencies, which are listed in package.json
.
$ npm install
Step 3: Create an app on GitHub
Head over to GitHub OAuth apps and create a new OAuth app. Name it what you like but you'll need to specify a callback URL, which should be something like:
https://localhost:5000/auth/callback/github
The default port for our app is 5000
, but you may need to update this if your setup uses a different port or if you're hosting your app somewhere besides your local machine.
Step 4: Update environment variables and run the Server.
Create a new file named .env
by duplicating .env.sample
. Update the new file with the GitHub credentials. It should look similar to this:
# .env file
DATABASE_URL="[INSERT_DATABASE_URL]"
GITHUB_CLIENT_ID="[INSERT_CLIENT_ID]"
GITHUB_CLIENT_SECRET="[INSERT_CLIENT_SECRET]"
You replace the GitHub credentials here and update the database URL. Learn more about the required Environment Variables here.
Now we're ready to start our server which is as simple as:
$ npm start
Open http://localhost:5000 to view it in your browser.
The app will automatically reload if you make changes to the code. You will see the build errors and warnings in the console.
- Express - A minimal web framework for Node.js web applications
- Sequelize - A promise-based ORM for Node.js that supports PostgreSQL, MySQL, and SQLite.
- Bootstrap 4 - An open source design system for HTML, CSS, and JS.
- Handlebars - A popular templating language for building layouts.
We enforce a Code of Conduct for all maintainers and contributors of this Guide. Read more in CONDUCT.md.
The Hackathon Starter Kit is open source software licensed as MIT.