Europeanstar
![Netlify Status](https://api.netlify.com/api/v1/badges/af7f873b-71bf-408e-be53-12fcf3e3bb1a/deploy-status)
A single page app for viewing trains going to Europe.
An app to play with various libs, modules and technologies.
Limitations:
- Return journeys only
- Four possible routes
- Lightweight error handling
Technologies
Frontend
- React via Create React App
- Jest for test...ing
- Redux for state management
- Redux Thunk for handling async actions
- Styled Components because 💅
- Styled Tools to simplify using Styled Components
Backend
- Koa serves the assets (at least on Heroku)
- Assets are compressed with GZip and Brotli (requires > Node 11.7.0)
Development
Todo
Remove Rollbar (it has expired)
Add dates to Outbound and Inbound listings
Cache source checkout in CircleCI
- Use hooks for search form (maybe)
- Don't upload compressed files to S3
Output file size from scripts/compress.js
Implement dependancy caching in CircleCI
Deploy to Netlify
Add automated browser tests. Possibly Cypress
- Better styling between mobile, tablet and desktop
- Close datepicker on selection
- Extract and centralise class colour styles
- Use custom domain
- Put behind a CDN
- Customise compression to ignore files under a certain size
- Set up an SSL cert for S3 deployment
- Add routing for next sub-app
- Deploy to EC2
- Internationalise
- Translate
- Merge
lint-staged
, yarn format
and VS Code's config for Prettier into one of the available config files
Hide Basket until relevant
Refactor display logic into selectors
Only show the selected trains
Force HTTPS
Heroku notification to Slack on Production deployments
Pre-commit hook to run Prettier
Start using styled-tools
Highlight the chosen fare in class colour
Hide classes until trains are shown
Stop Redux Logger from outputting in tests
Refactor selectors.getBasket()
Style and selectively render the basket
Alternative deployment to AWS S3
- Add back engines section to package.json once we're caught up with package updates:
"engines": { "node": "12.3.1", "yarn": "1.16.0" },
- Proxy API requests through server for both dev and production