- Project Setup
yarn create react-app .
- Add dependencies and change setup project
- Setup firebase
- Create register form
- Add register user with email and password
- Create errors upon registaration and show loading state
- Add name and avatar to users, add new users to database
- Create login form and functionality
- Set up redux to make user data available on global state
- Add Spinner Component for Loading State
- Scaffold App Components
- App Header / UserPanel Dropdown
- Add signout functionality, clear user action
- Passing Redux state via props
- Add Avatar to User Dropdown
- Add Channels Component
- Create Modal for Adding Channels
- Create Channels Collection, Add First Channel to Database
- Display Channels with child_added Listener
- Put Channel on Global State, Add channel_reducer
- Set First Channel on Page Load, Show Active Channel
- Remove Listeners with componentWillUnmount
- Scaffold ColorPanel / Message Components
- Create Messages Collection, Add First Message to Database
- Controlled Input to Clear Message, Disable Button onLoading State
- Display Messages, Create Message Component
- Create File Modal to Upload File
- Put Media File in State, Add Mimetype Validation
- Upload Image File, Post Image Message
- ProgressBar Component to Represent Image Upload
- Options for Displaying ProgressBar
- Add Channel Title / Users Count to Messages Header
- Add Ability to Search Messages
- Create DirectMessages Component
- Add Users to DirectMessages Component, Show If Online/Offline
- Put DirectMessage Channel Data in Global State, Set as Private Channels
- Functionality to Add Messages / Images to Private Channels
- Display Active DirectMessage Channel
- Add Notifications to Public Channel
- Add Starred Component to Hold Starred (Favorited) Channels
- Update 'Starred' Property for User Data Upon Starring Channel
- Display Starred Channels in Starred Component
- Scaffold MetaPanel Component
- Display Channel Info in MetaPanel
- Display Top Posters for each Channel in MetaPanel
- Add Color Picker Modal to ColorPanel
- Attach Chosen Colors to User Data
- Display Saved User Colors as Icons, Change App Colors on Click
- Create Change Avatar Modal
- Crop Uploaded Image with AvatarEditor
- Upload Cropped Image to Firebase, Put on User Profile
- Add Typing Collection to Track When Other Users Typing
- Add Typing Component / Animation, Display in Messages
- Add Typing Listeners to See When Other Users Typing
- Emoji Picker to Add Emojis to Messages
- Automatic Scroll to Bottom upon New Message
- Show Message Skeleton when Messages Loading
- Create Key Combo Shortcuts to Send Messages
- Remove Listeners upon Component Unmount
- Write Firebase Storage Rules for Media Files
- Write Database Rules for App Data
- Deploying our App with Firebase Tools
Install globaly package
firbase-tools
with command:
npm i firebase-tools -g
this aplication is working on url: https://react-slack-c690e.firebaseapp.com