Developed to deal with redundant queries about University of Glasgow short courses.
The chatbot can be accessed live and running here.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Please ensure all dependancies for both client and server are fully installed in order to run the project.
$ npm install
Make sure to run
$ pip install -r requirements.txt
or if you are not using a virtual environment,
$ pip3 install -r requirements.txt
when in the folder with that file. It is recommended to run the server in a virtual environment.
The following commands for running the client and server must be ran simoultaneously in different terminals in order to run the full project.
Simply run
$ npm run dev
The server needs some environmental variables to be set in order to run properly. You can look in .env.example
to see the environmental variables that are currently required. Their values can currently be found in the Wiki. Once you have them, within the same folder
as the example, create a new file called .env
and paste them in there. Be careful not to commit it.
To run the server itself, in the folder where manage.py
exists, run
$ python manage.py runserver 5000
or if you are not using a virtual environment,
$ python3 manage.py runserver 5000
These tests have been developed using the Cypress testing framework.
First navigate to the client
directory
To install cypress run the following command
$ npm install cypress
To run the tests:
$ npm run cypress:open
Within the folder that contains manage.py
, run
$ python manage.py test
or if you are not using a virtual environment,
$ python3 manage.py test
Within the client
directory
$ npm run build
Will create a dist
directory containing your compiled code.
Depending on your needs, you might want to do more optimization to the production build.
Run in development
$ npm run dev:bundleanalyzer
Run on the production optimized build
$ npm run build:bundleanalyzer
- DialogFlow - Chatbot
- Firebase - Communication between client and DialogFlow
- ReactJS - The actual frontend that the user sees
- React-Simple-Chatbot - The client framework
- Cypress - For testing the frontend
- ResponsiveVoiceJS - For text to speech capabilities
- Django - For the backend server
- SendGrid - To send email to the clients
- AWS - To host the database and server
- MySQL - The database
- TypeForm - The feedback form that appears at the end
Please read Contributors.md for our contact details.
- Anguel Hristozov
- Justyna Toporkiewicz
- Hannah Mehravari
- Odysseas Polycarpou
- Martin Manov
MIT
See LICENSE for entire license information.
- Dr. Jeff Dalton - for his incredible help and guidance throughout the entire project lifecycle
- React Simple Chatbot - Base React component used for frontend