Slackover is a live chat client, with notification integration. Think Slack crossed with Pushover.
What we've written so far is a very quick proof of concept chat application (written in React and powered by Firebase). It includes:
- Authentication via email and password, using Firebase Authentication and Firebase React Web UI
- Sending and Receiving messages using Firebase Firestore
- A cloud function integration point, powered by Firebase Functions to be able to integrate with third parties such as Pushover or Twilio - which automatically parses commands entered into the chat panel.
The challenge for today is to help us build upon this proof of concept, in any sensible way. So whats missing? Everything!.
Some ideas for what you could do:
- Making the web app more useable, presentable and eye catching.
- Starting a new app from scratch such as a desktop app using Electron
- Adding features like Channels, user profiles, photo uploads
- Create a cloud function integration to integrate a notification service. Some examples of what you might want to send a message to:
- Email (maybe integrate a SMTP mailer service like Mailgun)
- SMS (something like Twilio
- Push Notifications (how about Pushover)
- Twitter (check out their API
- Slack (check out their API)
- Add Giphy support to send gifs to other users
- Add location support to send locations with a map preview to other users
- Create a new way of sending messages to the chat - for example an Alexa Skill
- Add some automated tests, using Jest, React testing library or Cypress
- Improve the code quality - maybe integrate tools such as CodeClimate
- Setup a CI / CD pipline
Really, it's up to you what you would like to do to help improve the project.
- Fork this project into your own GitHub repo.
- Register for your own free Firebase account and Register a web app (dont forget to copy your keys).
- Replace the appropriate keys for your firebase account in
src/api/index.js
. - (Optional) - If you want to work on the backend to add a notification service, follow the instructions to setup the Firebase CLI and login.
- Enable the Firebase authentication module using email and password.
- Create a Firebase firestore called
messages
. To do this you can add a test message using the data properties as shown insrc/store/store.js
. - Make sure you have installed node 12 LTS and yarn.
- Open the project folder, and type
yarn && yarn start
. Test you can register and login. - You will need to add a missing database index at this stage. Open the browser developer console, and follow the provided link to add the composite index.
- Test you can send and receive messages.
- Get cracking with your awesome new feature!
- If you get to a point where you're happy with what you've build, open a Pull Request back to us, and we can review what you've done!
This project was bootstrapped with Create React App.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.