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.
- git clone
- Set up a MySQL database
- Make a copy of
config/common.json
intoconfig/local.json
and add your settings. - 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. - 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 runsource venv/bin/activate
when you want to run python or pip. To deactivate it you can just rundeactivate
or close the terminal. - Run
pip install MySQL-python
. - Go to API/ and run
pip install -r requirements.txt
to install all the dependencies of Django server. - Run the Django server using
python manage.py runserver
inside theAPI
folder. If it asks you to run migrations, do it. - Install the required dependencies for the node server and the client by
running
yarn install
in client/ and realtime/. - Run the node service using
node server.js
orforever start server.js
inside therealtime
folder. - Build the client-side bundle with
yarn build
inside theclient
folder. Or runyarn build --watch
if you plan to edit the client-side source. - Set up nginx to statically serve the
client
folder.
- 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.
Alphabetically.
- Aleksis Brezas
- Antonis Skarlatos
- Carolina Alexiou
- Dimitris Lamprinos
- Dionysis Zindros
- Eleni Lixourioti
- Kostis Karantias
- Petros Angelatos
- Vitalis Salis