GithubHelp home page GithubHelp logo

brionmario / jquery-mobile-starter Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 599 KB

๐Ÿ’ฅ A quick start kit for jQuery Mobile Framework based website development with SASS support

Home Page: https://jquery-mobile-starter.herokuapp.com/

License: MIT License

Dockerfile 0.40% JavaScript 29.50% Hack 7.44% PHP 28.94% SCSS 33.72%
jquery jquery-mobile sass gulp php responsive framework featured-project portfolio

jquery-mobile-starter's Introduction

logo-text

jQuery Mobile Starter

A quick start kit for jQuery Mobile Framework based website development

Build Status All Contributors License: MIT

This repository could be used by anyone who's looking for a quick starter kit for jQuery Mobile framework based website development. This boilerplate uses Gulp for building and automating the workflow. Following are some key features we've included for you.

  • The most recent version of jQuery Mobile 1.4.5
  • The ability to use html, php or jade.
  • Usage of Sass: Syntactically Awesome Style Sheets over CSS.
  • Ready to go build system using Gulp.
  • Simplified development process with npm scripts.
  • Easilily integrate your favourite php libraries using Composer.
  • Ability to use your favorite bower packages.
  • Organized and easy to use folder structure for beginners.

Quick Links

Demo Documentation Theme Roller

Quick start

The generated project have dependencies that require Node.js together with npm & Composer.

Install Composer locally or globally by following the instructions listed here.

Make sure you have Node version >= 8.0 and npm >= 5 or Yarn.

# clone our repository
# --depth 1 removes all but one .git commit history
git clone --depth 1 https://github.com/brionmario/jquery-mobile-starter.git

# change the directory
cd jquery-mobile-starter

# install the npm dependencies listed on package.json
npm install

# install the composer dependencies listed on composer.json
Composer install

# start the development server
npm start

Once the dev server is fired up, it'll automatically open up a new tab. If not, manually navigate to the local URL listed on the terminal(usually http://localhost:8000).

Table of Contents

File Structure

jquery-mobile-starter/
 โ”œโ”€โ”€ coverage/                      * unit test coverage reports
 โ”œโ”€โ”€ dev/                           * stores development build artifacts
 โ”œโ”€โ”€ dist                           * stores production build artifacts
 โ”œโ”€โ”€ docs/                          * contains documents and document resources
 โ”œโ”€โ”€ node_modules/                  * contains dependencies pulled from npm
 โ”œโ”€โ”€ src/                           * source folder
 โ”‚   โ”œโ”€โ”€ assets/                    * static assets such as images, icons, fonts goes here
 โ”‚   โ”œโ”€โ”€ components/                * reusable components can be placed here
 โ”‚   โ”œโ”€โ”€ scss/                      * styles folder
 โ”‚   โ”‚   โ”œโ”€โ”€ partials/              * place all the sass partial stylesheets in this folder
 โ”‚   โ”‚   โ””โ”€โ”€ styles.scss            * the main stylesheet for the project which gets compiled to CSS
 โ”‚   โ”œโ”€โ”€ scripts/                   * custom javascript script files
 โ”‚   โ”œโ”€โ”€ bower_components/          * third party bower libraries will be copied here
 โ”‚   โ”œโ”€โ”€ composer-demo.php          * demo of the composer dependency management
 โ”‚   โ”œโ”€โ”€ demo.php                   * file containing the demo sorce code
 โ”‚   โ””โ”€โ”€ index.php                  * entry php file
 โ”œโ”€โ”€ vendor/                        * packages pulled from composer will be stored here
 โ”œโ”€โ”€ .all-contributorsrc            * contains info ablout repo contributors
 โ”œโ”€โ”€ .babelrc                       * babel build config file
 โ”œโ”€โ”€ .bowerrc                       * bower config file
 โ”œโ”€โ”€ .buildpacks                    * contains heroku buildpacks
 โ”œโ”€โ”€ .dockerignore                  * contains files that are ignored from docker
 โ”œโ”€โ”€ .editorconfig                  * helps define and maintain consistent coding styles between different editors and IDEs
 โ”œโ”€โ”€ .eslintrc                      * ecmascript linting configuration file
 โ”œโ”€โ”€ .gitignore                     * contains files that are ignored from git
 โ”œโ”€โ”€ .npmrc                         * npm config file to house project wide custom configs
 โ”œโ”€โ”€ .nvmrc                         * node version manager config file
 โ”œโ”€โ”€ .pullapprove.yml               * pullapprove config file
 โ”œโ”€โ”€ .sass-lint.yml                 * sass linting configuration file
 โ”œโ”€โ”€ .travis.yml                    * travis ci configuration file
 โ”œโ”€โ”€ app.json                       * heroku manifest format for describing app
 โ”œโ”€โ”€ bower.json                     * contains bower dependencies
 โ”œโ”€โ”€ CHANGELOG.md                   * version changelog
 โ”œโ”€โ”€ composer.json                  * contains php project requirements
 โ”œโ”€โ”€ CONTRIBUTING.md                * project contributing guidelines
 โ”œโ”€โ”€ docker-compose.yml             * docker compose file
 โ”œโ”€โ”€ Dockerfile                     * docker config file
 โ”œโ”€โ”€ gulpfile.babel.js              * main buld configuration file. contains all the gulp tasks.
 โ”œโ”€โ”€ LICENSE.md                     * licensing information
 โ”œโ”€โ”€ package.json                   * contains all the npm scripts for building, running, deploying etc. and contains all the dependencies
 โ”œโ”€โ”€ Procfile                       * contains commands to be executed by heroku at app startup
 โ””โ”€โ”€ README.md                      * Readme file for the repository

Getting Started

Prerequisites

What you need to run this app:

  • The generated project have dependencies that require Node.js together with npm and Composer.

Make sure you have Node.js, npm & Composer installed by running the following simple commands on the command line and see if you're running the latest stable versions.

  • Node.js - Type node -v on the terminal.
  • npm - Type npm -v on the terminal.
  • Composer - Type Composer -v on the terminal.

If you do not have them installed, click here and grab the latest stable version of Node.js and npm will be automatically installed along with it. Or if you have brew already installed in your local machine, execute brew install node command to get node.

To download composer, click here and follow the download instructions.

The project requires bower to install project scope dependencies such as bootstrap, jquery etc. but it is not required to install bower on your local machines since npm installs bower as a project dependency. Also bower install command is run automatically by npm as a post install script.

In addition we've created npm scripts to run gulp tasks and gulp is installed by npm as a project depency. So you don't have to install gulp or gulp cli manually on your working machine.

Setting Up

  • clone the repository
  • cd jquery-mobile-starter to change the directory
  • npm install to install npm dependencies
  • Composer install to install composer dependencies

Running the app

After you have installed all dependencies you can now run the app. Run npm start to start a local server using gulp which will watch your stylesheets and javascript files for changes, compile, minify, build and reload the browser automatically using browser-sync library. The dev server will be opened in a new tab and usually on http://localhost:8000 and the Access URLs will be displayed on the terminal.

server

# development
npm start

# production
npm run server:prod

Configuration

The gulp tasks are defined inside the gulpfile.babel.js file found on the root of the application and you need to extend this file if you want to customize the application.

Add third-party dependencies

Composer

To integrate PHP libraries from composer, visite the packge repository website(https://packagist.org/) and follow the instructions. The command to install the package would generally look loke below. Replace the $package with the actual package you want to install.

composer require $package

Take a look at the bellow example:

Lets say that you want to integrate facebook/graph-sdk to your project. Just run the command bellow.

composer require facebook/graph-sdk

Bower

To use any third party bower libraries other than the included jquery-mobile, jquery and font-awesome libs, locate the package you want in the bower package repository and use the following command to add it to your project.

bower install $package --save

Take a look at the bellow example:

Lets say that you want to add moment.js to your project. Just run the command bellow.

bower install moment --save

NOTE: Some packages won't work as expected and you might have to do overrides in the bower.json file.

Styling

The styles.scss file inside the sass directory is the main stylesheet for the project and will be compiled and minified into an external .css and is embedded in the index.html file. If you want to add your own stylesheet, we recommend that you place it under the scss/partials folder and import it in the styles.scss file.

For example if you want to include the styles for a slider:

  1. Create a _slider.scss partial file in the scss/partials directory.
  2. In styles.scss add @import 'partials/slider.scss';

For the purpose of the demo, we have overriden the native look and feel of some jQuery mobile components. Feel free to remove them by locating in partials.

Testing

Execute the following command to run your unit tests. We use codecov package to generate test coverage reports and the generated reports can be found in the coverage folder.

npm run test

Linting

Execute the following commands to generate linting for styles and scripts.

# all
npm run lint

# javascript
npm run lint:scripts

# sass
npm run lint:styles

Deployment

Building the app

For Development

Execute the following command to build your files in the development mode. A new folder called dev will be created and the artifacts will be saved there.

npm run build:dev

For Production

Execute the following command to build your files in the production mode. A new folder called dist will be created and the artifacts will be saved there.

npm run build

Deploy to Heroku

Deploy to Heroku using this template with one single click. Heroku has an awesome free and it is extremely easy to use.

Click here to see the deployed app.

Deploy

Built With

npm ย ย  Composer ย ย  npm ย ย  npm ย ย  bower ย ย  sass ย ย  gulp

Changelog

Please refer CHANGELOG.md to learn about the latest improvements, breaking changes and bug fixes.

Contributing

Please read CONTRIBUTING.md for contributing guidelines and to learn about our code of conduct.

Contributors


Brion Mario

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› โš ๏ธ

This project follows the all-contributors specification. Contributions of any kind welcome!

License

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

jquery-mobile-starter's People

Contributors

brionmario avatar fossabot avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

fossabot

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.