Skip to content

Latest commit

 

History

History
69 lines (66 loc) · 2.01 KB

ROADMAP.md

File metadata and controls

69 lines (66 loc) · 2.01 KB

Roadmap

Phase 1 - Scaffold

  • 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

Phase 2 - MVP

  • 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
  • Clean the tweets periodically, so we don't exceed the 10k row limit on Heroku
  • Add development & setup guide

Phase 3 - Improvements

  • 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