Skip to content

A starter boilerplate web app packed with popular modules.

License

Notifications You must be signed in to change notification settings

michaelkotlyar/FullFeatureX

Repository files navigation

FullFeatureX

A boilerplate, dashboard themed, application with user authentication capabilities. This is really just a side project for myself, but it's completely free for anyone to use.

Resources

Frontend

  • Bootstrap 4 - Layout and base styling
  • HTML5 Boilerplate - Layout metadata and icons setup (Still currently using the favicon and icons from this boilerplate…)

Backend

  • PostgreSQL - This app is built for accessing a PostgreSQL database. The module I use to broker this is Knex.js. Knex also supports other database management systems such as MySQL and SQLite3.
  • Knex.js + Objection.js - An ORM module I have recently adopted onto the project.
  • Passport - This module is used to authenticate and create user sessions when logging in.

Dependencies

Production

Development

To do list

  • Create own favicon/icons
  • User profile image
  • MORE TESTS!

Getting Started

Prerequisites

You need a set of CLI tools to run this app. Make sure you have Node Package Manager (npm) installed first.

  • npm
  • Knex.js npm install -g knex
  • Gulp npm install -g gulp
  • Mocha npm install -g mocha
  • PostgreSQL (client & CLI)
    Make sure your database server is running for the installation.

Installation Instructions

These instructions assume you have installed the prerequisites, like using command-line, and you are using PostgreSQL as your DBMS. You can use other databases such as SQLite3 and MySQL according to Objection.js and Knex.js.

  1. Clone this repository into your desired directory
    $ git clone https://github.com/uzimike/FullFeatureX.git

  2. Change the name of .env-sample to .env. And make any necessary changes to the file variables.

  3. Go to application directory
    $ cd directory-to/fullfeaturex

  4. Install the dependencies
    $ npm install

  5. Enter the PostgreSQL CLI
    $ psql

  6. Create your database
    # create database fullfeaturex;

  7. Create your test database
    # create database fullfeaturex_test;

  8. Exit the PostgreSQL CLI
    # \q

  9. In the fullfeaturex directory, migrate knex
    $ knex migrate:latest

  10. Run the knex seed
    $ knex seed:run

  11. Run gulp
    $ gulp

Testing

npm test

There are a few tests currently stored in fullfeaturex/test/*.js. Have a look at mocha and chai to see how to use this. eslint is used to check for configurable coding syntax. nyc is used for testing coverage.

This project uses git-hooks and tests the project at every commit (only if there is any *.js files in the commit).

Notes

Preset accounts

In the development environment, there are three accessible users accounts in the user database.

Michael

username: Michael
password: michael

Borat

username: Borat
password: borat

Admin

username: Admin
password: admin

The rest that you see in the /users page are faker accounts generated when seeding data into the database. The passwords are practically unknown.

Contribution

I personally intend for this project to be my own work. However, if there are any improvements you'd like to suggest, you're more than welcome to contact me about it.

License

This project is licensed under the MIT License - see the LICENSE file for details