/Gossip

Primary LanguageTypeScript

Gossip:

I am working on this project during lockdown to learn some new skills and create a React based messaging web application as my internship this summer got cancelled.

Goals:

  1. Learn best Practices of web development.
  2. Learn how to plan an big web application such as:
    • How does technology XXX work?
    • How do I use technology XXX?
    • Why should I use technology XXX over technology YYY?
    • What are the best practices for using technology XXX?
    • What are the currently leading technologies in the ecosystem?
    • What is the effificent way of testing the website.
  3. Learn TypeScript, React, Graph QL, Node, Apollo, WebPack

Milestones:

To not got bored and loose motivation of the project I have set some milestones for myself and the project. I think this will help me to keep motivated to complete the project. I have not done any web development for quite some time so I am thinking to go through some tutorials before working on the project, and I will be building chronologically from the most basic to high level features.

  • Create Milestone for the project

Learning and Reviewing

  • React documents
  • How to use Type Script with React
  • Best practives of Type Script with React
  • Reviewing UI library or create UI on own
  • Learn how to create a Node JS server with Express
  • Review GraphQL or use REST EndPoint -> Graph QL (As wanted to learn something different)
  • Review Apollo Server Docs (Apollo Helps to connect GraphQL with HTTP-Endpoint easily)
  • Choose Testing Framework -> (Jasmine, Mocha, Jest)
  • Go through Jest Tutorials
  • Go through React Router Tutorials

Completed Project Milestone

  • Creating a basic React APP with a basic view
  • Styling with Material UI and Styled Components
  • Setting a basic Node.JS server with basic a basic REST endpoint.
  • Transition to GraphQL
  • Write Jest test modules for components.
  • Implement App Router
  • Creating Chat room UI and basic functionality.
  • Improve performance with Caching, rather than fetching everytime.

TODO

  • [] Update Jest test modules for new functionality.
  • [] Senging message using GRAPH QL, mutations
  • [] Choose between MongoDB/PostGreSql
  • [] Add Users Functionaluty
  • [] Authentication
  • [] Adding and Removing chats
  • [] Will add more, once these completed.
  • [] Host website on server
  • [] Keep Updating once new technologies come