Giter VIP home page Giter VIP logo

ting's Introduction

Ting is a chat platform.

  • To learn what the vision for ting is, see /etc/spec/SPECIFICATION.md.
  • For the technical architecture, see /etc/spec/ARCHITECTURE.md.
  • We have a bug database. Ask for access to our trello board. Pick a bug and fix it.
  • We use ting.gr/dev and a Facebook chat for development team discussions. Ask for access.

Running Ting

  1. git clone
  2. Set up a MySQL database
  3. Make a copy of config/common.json into config/local.json and add your settings.
  4. Install NodeJS and the dependencies required to run Django installation by running sudo apt-get install python-dev libmysqlclient-dev libffi-dev python-pip nodejs nodejs-legacy. Install yarn.
  5. Make a virtual python environment using virtualenv venv on the API/ folder. We recommend this because the API will use its own copies of python and of the required dependencies, so you can update your libraries in your system without worrying that you might "break" the API. In order to use the virtual environment you only have to run source venv/bin/activate when you want to run python or pip. To deactivate it you can just run deactivate or close the terminal.
  6. Run pip install MySQL-python.
  7. Go to API/ and run pip install -r requirements.txt to install all the dependencies of Django server.
  8. Run the Django server using python manage.py runserver inside the API folder. If it asks you to run migrations, do it.
  9. Install the required dependencies for the node server and the client by running yarn install in client/ and realtime/.
  10. Run the node service using node server.js or forever start server.js inside the realtime folder.
  11. Build the client-side bundle with yarn build inside the client folder. Or run yarn build --watch if you plan to edit the client-side source.
  12. Set up nginx to statically serve the client folder.

Contributing

  • Work on your own fork.
  • Never push to the main repo. Always create a feature branch and pull request.
  • You need an LGTM to merge. All review comments must be resolved even if you have an LGTM.
  • A pull request can be merged by the author or by the reviewer giving the LGTM.
  • Make sure your commits are clean and atomic. Commit messages must be descriptive. Rebase if you have to.

Authors

Alphabetically.

  • Aleksis Brezas
  • Antonis Skarlatos
  • Carolina Alexiou
  • Dimitris Lamprinos
  • Dionysis Zindros
  • Eleni Lixourioti
  • Kostis Karantias
  • Petros Angelatos
  • Vitalis Salis

ting's People

Contributors

alexandroskal avatar carolinux avatar dionyziz avatar gregth avatar gtklocker avatar hepic avatar mbalamat avatar petrosagg avatar pkakelas avatar vitsalis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ting's Issues

Migrate all JS to coffee

There are still some things on the front-end that use JS instead of coffee (e.g. controllers). Migrate them to coffee.

Basic chat history

Store chat history using PostgreSQL. When a user logs in, display the latest messages as part of the history.

Avatar choice on login

When there's a new user, let them choose an avatar for their profile. The avatars should be a list of cartoon animals stylized in a similar way (e.g. all in circles). An avatar should be selected by default randomly when the user starts.

Nickname generation on login

Make the login screen automatically generate a new nickname if you don't already have one. The nicknames should be greek. They should be a combination of two words, capitalized, one adjective followed by one noun, and they should match in gender e.g. "ΜπλεΙπποπόταμος" or "ΧαζήΤυροκροκέτα". This should be pre-filled so that the user doesn't have to actually type any nickname before joining.

Display avatars

Display avatars in the nickname list and in the chat text window.

Depends on #4.

Set up ting to run on heroku

Migrate the ting.gr domain name to heroku and set it up so that it runs persistently. We can then start running experiments on it and run it through a few users.

Investigate long chat conversations

Long chat conversations don't display correctly. Make sure the UI behaves well. For example, when a new message is received, the messages panel should scroll to the latest message, and there should be no overflowing.

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.