This project is bootstrapped with create-react-app.
The purpose of this project is to demonstrate a fully functional FullStack Social Media Application. The client-side, or frontend component, is developed using React.js, while the server-side, or backend component, is built using Node.js.
Mainly, the focused on this project is on client-side.
The project structure adheres to industry best practices.
The client directory is organized based on functionality and type, with directory names chosen to justify their purpose.
Note: The project also follows a consistent naming convention. Directories are named using kebab-case, while files use pascal-case.
By using the below technologies and tools, the project benefits from enhanced type safety, improved testability, simplified data fetching, efficient styling, code quality enforcement, and consistent code formatting.
- TypeScript
- React redux
- Redux persist
- Redux toolkit
- React cookie
- MUI (offers a comprehensive suite of UI tools to help you ship new features faster)
- Formik (building forms)
- yup (a schema builder for runtime value parsing and validation)
- React router dom
- Emotion library (designed for writing css styles with JavaScript)
- React dropzone
- Eslint
- Prettier
- NodeJS
- MongoDB
- Express
- Bcrypt
- CORS
- Body parser
- Helmet (helps you secure your Node. js application by setting several HTTP headers)
- JSON Web Token
- Multer
- Mongoose
- Morgan
- Dotenv
- Nodemon