The ColdCall application is a Django-based platform that is designed to assist professors by providing an effective interface for tracking student metrics, attendances, and engagement in the classroom. Professors have the ability to organize multiple classes of students, log attendance and performances, and randomize student selection for interactive participation. This application will be structured with a multi-page interface allowing users to edit/add students and import/export class data.
In order to build this project you first have to install:
- Python 3.13.0
- Django 5.1.2
pip install Django==5.1.2
In order to deploy this project, you need Gunicorn. (UNIX only)
pip install gunicorn
- Clone the repo.
https://github.com/SCCapstone/llama.git - Create a
.envfile with the following:
SECRET_KEY=<put key here>
DEBUG=TRUE
- Install the dependencies through
pip install -r requirements.txt - Initialize the database through
python manage.py migrate - Run the server through
python manage.py runserver
- Follow the prior steps to initialize the server.
- Install Gunicorn
pip install gunicorn - Create the static directory thorugh
python manage.py collectstatic - Edit the .env to set
DEBUG=FALSE. - Run
gunicorn llama.wsgi
Additional configuration may be required depending on operating system setup. For this, we connected Gunicorn to nginx.
This project requires the use of external services. By default, reCAPTCHA will use test keys unsuitable for production. To use your own keys, add the following to .env.
RECAPTCHA_PUBLIC_KEY = key
RECAPTCHA_PRIVATE_KEY = key
By default, email requests will be sent to the console. For proper password reset functionality, a SMTP server is required, whether self-hosted or from a service such as Mailgun. Configuration will vary depending on service, but further information can be found at https://docs.djangoproject.com/en/5.1/topics/email/.
The current dev server is deployed at https://capsto.me/.
The unit tests are located in /coldcall/tests/.
The behavioral tests are in coldcall/selenium_tests/.
The test environment settings are located in /llama/test_settings.py/
Unit testing uses Django's built-in test framework, which is an extension of Python's unittest functionality. Behavioral testing uses Selenium through python, which is automatically set up through the installation process. Google Chrome must be installed.
To run unit tests, use python manage.py test coldcall/tests/ --settings=llama.test_settings.
To run behavioral tests, use python manage.py test coldcall/selenium_tests/ --settings=llama.test_settings (each test will take roughly 5 seconds)
To run all tests, use python manage.py test --settings=llama.test_settings
Ankit Nath ankitnath2004@gmail.com (anath@email.sc.edu)
Cade Stocker cstocker@email.sc.edu
Colin Richard colincr@email.sc.edu
Thomas Kareka tkareka@email.sc.edu
Trevor Seestedt seestedt@email.sc.edu
The following link provides the style of coding that will be used for the project. https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/