cloudyday v0.2.2
CloudyDay
A React seeder app for my own convenience so that I can just clone this whenever I need to test out with some React. Clone it, install dependencies and you're good to go.
Quick Start
- Install CloudyDay globally with the command
npm install -g cloudyday- Use the following command to run the interactive guided mode to creating your own project:
cloudyday- Start making something!
What's Inside
Server Management
We use ExpressJS for the server.
UI Tools
ReactStrap and Material UI is included depending on which suits your use case.
ReactStrap URL: https://reactstrap.github.io/ MaterialUI URL: http://www.material-ui.com/
FontAwesome is also included for ease of using icons.
Code Quality
ESLint is included. Run ESLint test with npm run test-eslint.
Quality Assurance
Mocha, Chai, Enzyme and Karma are used. Nightwatch should be on the way for feature
testing. Run Mocha tests with npm run test-back. Run it continously with npm run test-back-watch.
DevOps
Cron scripts allowing for periodic running of scripts are available in /cron.
This seeder defines 3 environments: production, test and development.
Getting Started
Project Initialisation
Global Installation
Install the CloudDay package globally by using npm install -g cloudyday.
Create a project by running cloudyday in any folder.
Local Installation
Clone the repository from git@github.com:zephinzer/cloudyday.git.
Run npm run init to customise your repository.
Project Setup
After cloning, change the repository details to your own using npm run init which will
guide you through customising your project and removing existing Git history from the clone.
Install all modules using npm run update.
To setup the database for development, run npm run db-setup-dev. This needs to be
run the first time to initialise the database.
To tear down the database for development, run npm run db-teardown-dev. This is
useful because Sequelize's removal of seeders does not work as expected sometimes.
When that happens, run this script followed by npm run db-setup-dev to restore the
base state.
To run the application in production use npm start.
To run the application in development use npm run dev.
To run the application in test use npm run ci.
To use Sequelize use npm run sequelize <SEQUELIZE-CLI-COMMAND HERE>.
If using additional flags like --name, add a -- prefix to the command so that
flags can be picked up. Example: npm run sequelize -- model:create --name NewModelName
To test the application using Mocha and Istanbul use npm run test-back.
To check code quality using ESLint use npm run test-eslint.
To build the application, run npm run build.
To run all tests, code quality checks and build process use npm test.
Developing on CloudyDay
Assets are stored at /assets and is linked statically at the /assets/** endpoint.
Configurations are located inside /config.
The API is defined at /api and is available via the /api/** endpoint.
The WebView is defined in /webview and consists of the React app entry point.
The Server itself is defined in /server and defines pretty much everything above.
Tests are located inside /test.
Contributions and Roadmap
Contribution Process
- Clone to local
- Make your changes
- Specify changes in
README.md's changelog section - Add name to Contributors
- Create pull request
Thanks in advance!
Roadmap
- Make a global install version where you can install with
npm install -g cloudyday. - Create a globally accessible
cloudydaycommand that creates a project for you.
Changelog
0.2.2
- Fixes bug where
yarnis not installed, causingnpm run updateto fail when there is noyarn.
0.2.1
- Fixes bug where
.gitignorefile was not found.
0.2.0
- Adds ability to globally install CloudyDay with
npm install -g cloudydayand be able to run the commandcloudydayto create a new project with customisations included.
0.1.0
- Adds in
npm run initscript to assist in creation of new project from the cloned repository - Adds code coverage tool
istanbul - Updated specified NodeJS engine to 6.9.4
- Renamed
npm run test-mochatonpm run test-back - Added new
npm run test-back-watchto run the back-end tests continuously - Added new
npm run cicommand to run application in test mode
0.0.4
- Adds in /assets/ext into the .gitignore
- Adds in MySQL for Sequelize
- Adds in required Redux and Redux-Saga libraries
0.0.3
- Adds ReactStrap package and associated dependencies
- Adds Cron script support in folder
/cronto run cleanup scripts
0.0.2
- Adds FontAwesome package to default Bower packages and MaterialUI to Yarn packages
- Adds applicationTitle and applicationVersion to front-end
- Adds seed Sequelize data and associated scripts
- Adding API harvesting feature, files inside
/apiwill now automatically map to the corresponding filename. For example, the file/api/example.jswill map to the endpoint/api/example. - Removing
/assets/bundle.*from repository (usenpm run buildto create it) - Added JSON folder into
/assetsfor static drawing of information - Added proper ESLint rules
- Added ESLint ignore file for bundled assets
0.0.1
- Initial commit
Contributers
Initially written by zephinzer and licensed under GPLv3.