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.
- Learn best Practices of web development.
- 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.
- Learn TypeScript, React, Graph QL, Node, Apollo, WebPack
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
- 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
- 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.
- [] 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