- Server
- Setup language/environemnt - Typescript + Node.js
- Setup persistence - PostgreSQL
- Setup ORM - TypeORM
- Setup API framework - Type-Graphql
- Setup tests - Mocha + Chai
- Client
- Setup framework - Svelte
- Setup state controller - Svelte has one!
- Setup style
- Setup GraphQL client
- Setup linting & code style - ESLint and/or Prettier
- Setup infrastructure - Terraform
- Application
- Database
- Setup server-side logging
- Core business rules
- User creation
- Server
- Client
- Authentication
- Server
- Client
- Hashtag tracking creation
- Server
- Client
- Hashtag tracking removal
- Server
- Client
- Tweet retrieval & store (server only)
- Tweet listing
- Server
- Client
- Tweet search
- Server
- Client
- User creation
- Clean the tweets periodically, so we don't exceed the 10k row limit on Heroku
- Add development & setup guide
- Fix the top menu from moving on when changing screens
- Use GraphQL subscriptions (websockets) to push new tweets to the browser
- Make enter key work when including a track
- Setup CI
- Setup deploy
- Keep the database usage under 10k rows, because that is the Heroku's free PostgreSQL plan limit
- Filter the webSocket tweets via search too
- Improve API error messages & handling (duplicated entities, etc)
- When user adds a new hashtag, improve the feedback by fetching some tweets
- Password recovery
- User self deletion
- Server
- Client
- User self update
- Server
- Client
- Setup E2E tests - Jest + Webdriverio (?)
- Pagination
- Make the client beautiful, responsive & animated
- Enharden the API using a rate limit method
- Cache searches to improve response time
- Go mobile with Flutter