Skip to content

Commit

Permalink
huge overhaul to update create-react-app and M-UI
Browse files Browse the repository at this point in the history
  • Loading branch information
vivshaw committed Feb 7, 2021
1 parent 6059fcc commit 11274f9
Show file tree
Hide file tree
Showing 50 changed files with 42,433 additions and 17,978 deletions.
62 changes: 31 additions & 31 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
---
engines:
csslint:
enabled: true
duplication:
enabled: true
config:
languages:
- ruby
- javascript
- python
- php
eslint:
enabled: true
fixme:
enabled: true
ratings:
paths:
- "**.css"
- "**.inc"
- "**.js"
- "**.jsx"
- "**.module"
- "**.php"
- "**.py"
- "**.rb"
exclude_paths:
- "**/__tests__/**"
- "src/common/testData.js"
- "docs/**"
JavaScript: true
---
engines:
csslint:
enabled: true
duplication:
enabled: true
config:
languages:
- ruby
- javascript
- python
- php
eslint:
enabled: true
fixme:
enabled: true
ratings:
paths:
- "**.css"
- "**.inc"
- "**.js"
- "**.jsx"
- "**.module"
- "**.php"
- "**.py"
- "**.rb"
exclude_paths:
- "**/__tests__/**"
- "src/common/testData.js"
- "docs/**"
JavaScript: true
4 changes: 2 additions & 2 deletions .csslintrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
--exclude-exts=.min.css
--ignore=adjoining-classes,box-model,ids,order-alphabetical,unqualified-attributes
--exclude-exts=.min.css
--ignore=adjoining-classes,box-model,ids,order-alphabetical,unqualified-attributes
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
**/*{.,-}min.js
**/*{.,-}min.js
6 changes: 3 additions & 3 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"extends": "react-app"
}
{
"extends": "react-app"
}
20 changes: 10 additions & 10 deletions .flowconfig
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[ignore]
.*/__tests__/.*

[include]

[libs]

[lints]

[options]
[ignore]
.*/__tests__/.*
[include]
[libs]
[lints]
[options]
42 changes: 21 additions & 21 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.

# dependencies
/node_modules

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
# See https://help.github.com/ignore-files/ for more about ignoring files.

# dependencies
/node_modules

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
42 changes: 21 additions & 21 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
MIT License

Copyright (c) 2017 Hannah Vivian Shaw

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
MIT License
Copyright (c) 2017 Hannah Vivian Shaw
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
142 changes: 71 additions & 71 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,71 @@
<h1 align="center">Flybrary</h1>
<p align="center">A bookshelf management app written in React with Material-UI & styled-components</p>

[![CircleCI](https://circleci.com/gh/vivshaw/my-reads.svg?&style=shield)](https://circleci.com/gh/vivshaw/my-reads)
[![Code Climate](https://codeclimate.com/github/vivshaw/my-reads/badges/gpa.svg)](https://codeclimate.com/github/vivshaw/my-reads) [![Test Coverage](https://codeclimate.com/github/vivshaw/my-reads/badges/coverage.svg)](https://codeclimate.com/github/vivshaw/my-reads/coverage)
[![Live Demo](https://img.shields.io/badge/live%20demo-active-blue.svg)](https://my-reads-vivshaw.herokuapp.com/)
[![Docs](https://img.shields.io/badge/docs-documentation.js-ff69b4.svg)](https://vivshaw.github.io/my-reads)

<div align="center"><img src="https://cdn.rawgit.com/vivshaw/my-reads/master/docs/textlogo.svg" alt="flybrary logo" /></div>

## Table of Contents

- [What It Is](#what)
- [Installing](#installing)
- [Testing](#testing)
- [Deploying](#deploying)
- [Documentation](#documentation)
- [To-Do](#to-do)

## What

This is my submission for Project 1 of the [Udacity React Nanodegree](https://www.udacity.com/course/react-nanodegree--nd019). Flybrary
is a LibraryThing-esque library management app that keeps track of what books
you're reading. The app uses React & react-router to build an SPA front-end for
a RESTful books API. It can search for books, add books to shelves, rate them, and move
them between shelves. It has a responsive, mobile-first style built with Material-UI
and styled-components that should look equally great on mobile, tablet, or desktop.
It uses react-loadable for code splitting and react-snapshot for static prerendering.

[A live demo is available here](https://my-reads-vivshaw.herokuapp.com/).

## Installing
Installation should be a breeze, as this was built with create-react-app & requires
nothing more than

```
yarn install
yarn start
```

or

```
npm install
npm start
```

## Testing
The app has a full test suite written in Jest & Enzyme that can be run
with ```yarn test```. A coverage report can be generated with ```yarn test -- --coverage```.
The repo has CI set up with CircleCI & Codeclimate that will
automagically run the test suite & generate a coverage report on each git push.

## Deployment
The app has continuous deployment to Heroku on each successful (CI-passing) build of the
master branch. The latest passing build is at [my-reads-vivshaw.herokuapp.com](https://my-reads-vivshaw.herokuapp.com/).

For manual deployment, you can ```yarn build```, and then deploy the built app on
any webserver of your choice.

## Documentation
Flybrary is [fully documented](https://vivshaw.github.io/my-reads/) with JSDoc, and some [documentation.js](http://documentation.js.org/)-generated docs are hosted from the docs directory and are [available here](https://vivshaw.github.io/my-reads/). Unfortunately, the auto-generated docs aren't very good due to the lack of a good ESNext-compatible docs library. It was impossible to use JSDoc or ESDoc due to compatibility problems with certain ES6/ES7 features, and even documentation.js required a Babel transpilation step to get it working & does some weird things with my output. Regardless, the JSDoc in the source itself should be unambiguous.

To regenerate docs, use ```yarn docs```.

## To-Do
* Eventually, I'd like to migrate to a Redux architecture.
* I also have a couple Webpack bugs that I don't think I can fully resolve without ejecting and manually reconfiguring.
* There are a number of performance optimizations that I could tend to.
* Visual style could be spruced up
* The test suites are messy & incomplete, in large part due to a) many difficulties working with Material-UI in Jest and b) some trouble injecting mocks. Solving either of these could increase coverage & tidy things up.
<h1 align="center">Flybrary</h1>
<p align="center">A bookshelf management app written in React with Material-UI & styled-components</p>

[![CircleCI](https://circleci.com/gh/vivshaw/my-reads.svg?&style=shield)](https://circleci.com/gh/vivshaw/my-reads)
[![Code Climate](https://codeclimate.com/github/vivshaw/my-reads/badges/gpa.svg)](https://codeclimate.com/github/vivshaw/my-reads) [![Test Coverage](https://codeclimate.com/github/vivshaw/my-reads/badges/coverage.svg)](https://codeclimate.com/github/vivshaw/my-reads/coverage)
[![Live Demo](https://img.shields.io/badge/live%20demo-active-blue.svg)](https://my-reads-vivshaw.herokuapp.com/)
[![Docs](https://img.shields.io/badge/docs-documentation.js-ff69b4.svg)](https://vivshaw.github.io/my-reads)

<div align="center"><img src="https://cdn.rawgit.com/vivshaw/my-reads/master/docs/textlogo.svg" alt="flybrary logo" /></div>

## Table of Contents

- [What It Is](#what)
- [Installing](#installing)
- [Testing](#testing)
- [Deploying](#deploying)
- [Documentation](#documentation)
- [To-Do](#to-do)

## What

This is my submission for Project 1 of the [Udacity React Nanodegree](https://www.udacity.com/course/react-nanodegree--nd019). Flybrary
is a LibraryThing-esque library management app that keeps track of what books
you're reading. The app uses React & react-router to build an SPA front-end for
a RESTful books API. It can search for books, add books to shelves, rate them, and move
them between shelves. It has a responsive, mobile-first style built with Material-UI
and styled-components that should look equally great on mobile, tablet, or desktop.
It uses react-loadable for code splitting and react-snapshot for static prerendering.

[A live demo is available here](https://my-reads-vivshaw.herokuapp.com/).

## Installing
Installation should be a breeze, as this was built with create-react-app & requires
nothing more than

```
yarn install
yarn start
```

or

```
npm install
npm start
```

## Testing
The app has a full test suite written in Jest & Enzyme that can be run
with ```yarn test```. A coverage report can be generated with ```yarn test -- --coverage```.
The repo has CI set up with CircleCI & Codeclimate that will
automagically run the test suite & generate a coverage report on each git push.

## Deployment
The app has continuous deployment to Heroku on each successful (CI-passing) build of the
master branch. The latest passing build is at [my-reads-vivshaw.herokuapp.com](https://my-reads-vivshaw.herokuapp.com/).

For manual deployment, you can ```yarn build```, and then deploy the built app on
any webserver of your choice.

## Documentation
Flybrary is [fully documented](https://vivshaw.github.io/my-reads/) with JSDoc, and some [documentation.js](http://documentation.js.org/)-generated docs are hosted from the docs directory and are [available here](https://vivshaw.github.io/my-reads/). Unfortunately, the auto-generated docs aren't very good due to the lack of a good ESNext-compatible docs library. It was impossible to use JSDoc or ESDoc due to compatibility problems with certain ES6/ES7 features, and even documentation.js required a Babel transpilation step to get it working & does some weird things with my output. Regardless, the JSDoc in the source itself should be unambiguous.

To regenerate docs, use ```yarn docs```.

## To-Do
* Eventually, I'd like to migrate to a Redux architecture.
* I also have a couple Webpack bugs that I don't think I can fully resolve without ejecting and manually reconfiguring.
* There are a number of performance optimizations that I could tend to.
* Visual style could be spruced up
* The test suites are messy & incomplete, in large part due to a) many difficulties working with Material-UI in Jest and b) some trouble injecting mocks. Solving either of these could increase coverage & tidy things up.
18 changes: 9 additions & 9 deletions circle.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
machine:
node:
version: 6.0.0
test:
override:
- npm test -- --coverage
post:
- npm install -g codeclimate-test-reporter
- codeclimate-test-reporter < coverage/lcov.info
machine:
node:
version: 6.0.0
test:
override:
- npm test -- --coverage
post:
- npm install -g codeclimate-test-reporter
- codeclimate-test-reporter < coverage/lcov.info
Loading

0 comments on commit 11274f9

Please sign in to comment.