Code Monkey home page Code Monkey logo

space's Introduction

S P A C E

cover

Chat application for developers. [ Not yet fit for production use ]

Website

spacedev.herokuapp.com

About

A real-time chat application made using React, Redux, and Firebase.

Right now, it's just a barebones chat app, but developer-friendly features will be arriving soon. Final version of this app will be a desktop app using electron.js (with status tray notifications), but right now, it's a web app.

Contributing

This is a good first project to contribute to if you've recently learned react and redux, or want to learn the same.

If you're well-versed with these frameworks, you can help by improving the current app, or adding new features!

The following steps need to be followed to run this app locally:

Setting up firebase

First, download/clone this repository and cd into it:

git clone [email protected]:sar-gupta/space.git
cd space

Create a new project in firebase.

Head over to the authentication tab, click on Sign in method and select Github. Click on enable. Now, localhost should be an authorized domain by default, but if it isn't there, just click on Add domainand enter localhost.

Then, go to the database tab, click on real-time database and go to Rules.

Set its value to this:

{
  "rules": {
    ".read": true,
    ".write": true
	}
}

Now go the Project Overview and click on Add firebase to web app. You'll be promted with a screen that has a config object like this:

config oject

Now, back in your code editor, create a new file .env.development in the root of the project, and enter the following contents in this file:

FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAIN=
FIREBASE_DATABASE_URL=
FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_ID=

Enter the values from the firebase config object here, and save the file.

Running the app locally

Just run the following commands from the root directory of the project:

yarn
yarn run dev-server

And you're good to go!

If you want to contribute to this project, feel free to create an issue and/or submit a pull request.

NOTE

I recently learned React and Firebase, so this is my first project using these technologies/frameworks. So, you'll find a lot of instances where performance of the application can be improved. One such example is saving the database paths of all rooms and people in the application state instead of fetching them again and again. Feel free to submit pull requests if you find any such issue (including the one mentioned above) :)

Usage

After logging in with github, you can create new rooms or join existing ones. I've only allowed unique room names for a better user experience.

Number of unread messages don't go to 0 when you click on the chat name (that's intentional). It goes to 0 if you send a message to that room, or if you click on the number of unread messages.

space's People

Contributors

sar-gupta avatar andrewjmead avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.