Custom-build Django application for We All Code
We, the community and staff, have been building a custom Django application to handle out many parts of our organization.
Initial Setup
- Fork and clone this repository locally.
- Download and install OrbStack for Mac/Linux or Docker for Windows.
- Copy the
.env.sample
file to.env
.
sh
cp .env.sample .env
- Run the following to get a random Django secret key.
sh
python -c "import secrets; print(secrets.token_urlsafe())"
- Enter the output inside the
.env
file forSECRET_KEY
. Be sure to include the double quotes ("
) around the key. It'll look like the followingSECRET_KEY="<unique-key-here>"
. - Navigate into the project directory via terminal and run
docker compose up --build
- Load up your browser and go to http://127.0.0.1:8000.
- When you are done, you can stop the project via
ctrl+c
Debugging Accounts
Admin
username: admin@sink.sendgrid.net
password: admin
Mentor
username: mentor@sink.sendgrid.net
password: mentor
Guardian
username: guardian@sink.sendgrid.net
password: guardian
Continual work
After the initial project setup, you will only need to run docker compose up --build
.
Useful Information
Set up main repository as upstream
To setup the main respository as upstream
, you can add a new remote called upstream
.
git remote add upstream https://github.com/WeAllCode/website.git
Update local code from upstream
To grab the latest code from the main repo (named upstream
), run the following.
git fetch upstream --prune
git checkout main
git merge upstream/main main
Creating a new branch
Create a new branch based off of upstream
's main
branch.
git fetch upstream --prune
git checkout -b feature/a-good-name upstream/main
git push -u origin feature/a-good-name
Pull Request
Pull requests are always welcome. Make sure your pull request does one task only. That is, if it's fixing a bug, the pull request fixes only that bug. If you're adding a feature, make sure the pull request adds that one feature, not multiple at once.
Follow the "Creating a new branch" step above. Be sure to always push to your origin
remote, not upstream
.
Running commands on the docker container
- Running a command on a Docker app in a new container.
docker compose run --rm app <command>
Examples:
docker compose run --rm app /bin/bash
docker compose run --rm app poetry lock
docker compose run --rm app python manage.py makemigrations
docker compose run --rm app python manage.py migrate
- Cleaning up the docker containers:
docker kill $(docker ps -q); docker compose rm -f; docker volume rm $(docker volume ls -qf dangling=true);
- Rebuild docker containers after major changes:
docker compose build