List, filter and sort NFL Rushing data. Developed as a programming exercise with a minimum of a added components.
To install the application:
- Install dependencies with
mix deps.get
- Create and migrate your database with
mix ecto.setup
- Install Node.js dependencies with
npm install
inside theassets
directory - Load data with
mix load_rushing rushing.json
- Start Phoenix endpoint with
mix phx.server
Now you can visit localhost:4000
from your browser.
- Dark mode (if JavaScript enabled).
- Stateless, no sessions.
- Any view can be bookmarked.
- Easily cacheable.
- Javascript not required.
- Accessible. Tested with WAVE evaluation tool
- Uses Tailwind CSS with PostCSS.
- CSS will be huge in development.
- Production build purges unused CSS.
- Pagination avoids large data transfers.
- Stateless design is easily cacheable by a reverse proxy.
- Indices not yet added to database (TODO) -- would require benchmarks.
- Moving to a single page Javascript application could make minor performance improvements -- less data on each request.