This is a fullstack project built with react. Soshare is a mini social platform for sharing videos and posts within a vibrant community. The main aim of building the project is to understand how video rendering and twitter commenting works. Currently this project uses http progressive streaming and a chronological commenting.
- Frontend state management is handled with redux.
- Material ui handles theming, user interface and responsiveness.
- Axios handles data fetching.
- Authentication is based on JWT and stored in cookies.
- cookie-parser handles cookie authentication and storage is controlled by the server.
- Socket.io handles real time communication.
- Progressive streaming and storage is achieved through firebase.
- Mailing and server templating is handled with EJS.
- Notification system
- Comment system
- Soshare Pen (Compose Box)
- Carousel Slides
- Cursor Pagination
- Like/Unlike System
- Real time notification and update
- Adaptive bitrate streaming
- Improved carousel experience
- Improved Soshare Pen; I want it to be like twitter compose box.
- React
- Material ui
- Axios
- Firbase
- React-dropzone
- React-multi-carousel
- Socket.io-client
- React-redux
- Moment
Development
- cd client
- npm install
- npm start
- Open browser at speciifed url. Most likely http://localhost:3000
Production
- npm run build
- Nodejs
- Express
- Firebase
- jWT
- Multer
- Nodemailer
- Node-cron
- Socket.io
- Cookie-parser
- EJS
Development
- npm run dev
- Browser Lags a bit overtime due to http progressive streaming limitation (Most likely after 30 media views)
- I want to make soshare pen more like twitter compose box with the @mentions and link e.t.c
- Code refactoring and tidy up
Please note this project is just for learning. Feel free to fork and create pull request.