Skip to content

Latest commit

 

History

History
70 lines (45 loc) · 2.43 KB

File metadata and controls

70 lines (45 loc) · 2.43 KB

tCF Developer Info

Ensure your system has Git, git-lfs, Docker, and gdown installed.

One-Command Setup

Run the following command in a POSIX-compliant shell (i.e. Windows users - use GitBash).

Replace <install_dir> with where you'd like to clone the script.

TODO: correct branch to main/dev when merged

curl -fL 'https://raw.githubusercontent.com/thecourseforum/theCourseForum2/refs/heads/master/scripts/setup.sh' | sh -s -- <install_dir>

Setup (Old)

  1. Clone the project:
git clone https://github.com/thecourseforum/theCourseForum2.git
cd theCourseForum2
  1. Download the .env secrets file from the Google Drive /Engineering/ENV folder and place it in the project root.
  • Note: the file should be named exactly .env, not .env.txt or env.txt - rename if necessary.
  1. Build the project
docker compose build --no-cache
  1. Wait for the Django server to finish building (i.e. ✔ Service web Built is visible in stdout).
  2. Download and place the latest database backup (should be named latest.dump) from Google Drive into db/latest.dump in your local repo.
  3. Update the database:
./scripts/reset-db.sh
  1. Start the server
docker compose up
  1. Ensure the website is up, running, and functional at localhost:8000.

VSCode Setup

When you open the project, VSCode may prompt you to install the recommended extensions for this project. Click yes and ensure that they are in your extension library. A list of the necessary libraries can be found here.

Common Issues

  • Docker build error => CANCELED [internal] load build context
    • This occurs because of a Windows compatibility issue with Docker. As of December 19, 2023, downgrade Docker to version 4.19, then re-build the project.

Stack

The application stack is listed below. These technologies were chosen because they are robust and align with the stack that UVA students learn in courses.

  • Python
  • Django
  • PostgreSQL
  • Bootstrap 4
  • Javascript (jQuery)