-
-
Notifications
You must be signed in to change notification settings - Fork 26
Workshop Part 1
This workshop is for people who have not been able to successfully complete the following environment setup:
- a public GitHub account with two-factor authentication (2FA) setting on
- Git installed on your computer
- A text editor. VS Code is recommended, but feel free to use a text editor of your choice.
- Docker and Docker-compose installed/downloaded from the internet
- Basic knowledge of Python – see lessons here
We will help troubleshoot any issues setting up the development environment in order to work on Part 2 of the Workshop. Issues setting up environment happen to a lot of new developers or people switching to new computers.
- Make your own Hack for LA GitHub organization membership public by following this guide.
- Set up two-factor authentication on your account by following this guide.
Before cloning your forked repository to your local machine, you must have Git installed. You can find instructions for installing Git for your operating system here.
For Windows, you may want to install a Windows Subsystem for Linux (WSL) and then install Git from WSL.
Please note that if you have a Mac the page offers several options (see other option, if you need to conserve hard drive space) including:
- an “easiest” option (this version is fine for use at hackforla): This option would take just over 4GB.
- a “more up to date” option (not required but optional if you want it): This option prompts you to go to install an 8GB package manager called Homebrew.
- Other option: If your computer is low on space, you can use this tutorial to install XCode Command Tools and a lighter version of Homebrew and then install Git using this command:
$ brew install git
which in total only uses 300MB.
You can fork the hackforla/peopledepot repository by clicking Fork . A fork is a copy of the repository that will be placed on your GitHub account.
Note: It should create a URL that looks like the following -> https://github.com/<your_GitHub_user_name>/peopledepot
.
For example -> https://github.com/octocat/peopledepot
.
Be Aware: What you have created is a forked copy in a remote version on GitHub. It is not yet on your local machine yet.
Before creating a copy to your local machine, you must have Git installed. You can find instructions for installing Git for your operating system here.
The following steps will clone (create) a local copy of the forked repository on your computer.
Create a new folder in your computer that will contain hackforla
projects.
In your command line interface (Terminal, Git Bash, Powershell), move to where you want your new folder to be placed and create a new folder in your computer that will contain hackforla
projects. After that, navigate into the folder(directory) you just created.
For example:
mkdir hackforla
cd hackforla
and run the following commands:
git clone https://github.com/<your_GitHub_user_name>/peopledepot.git
For example if your GitHub username was octocat
:
git clone https://github.com/octocat/peopledepot.git
You should now have a new folder in your hackforla
folder called peopledepot
. Verify this by changing into the new directory:
cd peopledepot
Verify that your local cloned repository is pointing to the correct origin
URL (that is, the forked repo on your own Github account):
git remote -v
You should see fetch
and push
URLs with links to your forked repository under your account (i.e. https://github.com/<your_GitHub_user_name>/peopledepot.git
). You are all set to make working changes to the website on your local machine.
However, we still need a way to keep our local repo up to date with the deployed website. To do so, you must add an upstream remote to incorporate changes made while you are working on your local repo. Run the following to add an upstream remote URL & update your local repo with recent changes to the hackforla
version:
git remote add upstream https://github.com/hackforla/peopledepot.git
git fetch upstream
After adding the upstream remote, you should now see it if you again run git remote -v
:
origin https://github.com/<your_GitHub_user_name>/peopledepot.git (fetch)
origin https://github.com/<your_GitHub_user_name>/peopledepot.git (push)
upstream https://github.com/hackforla/peopledepot.git (fetch)
upstream https://github.com/hackforla/peopledepot.git (push)
Install or make sure [docker][docker-install] and [docker-compose][docker-compose-install] are installed on your computer
docker -v
docker-compose -v
The recommended installation method for your operating system can be found here. Feel free to reach out in the Hack for LA Slack channel if you have trouble installing docker on your system
More on using Docker and the concepts of containerization:
IMPORTANT: Please make sure the Docker Desktop
application is running on your computer before you run the bash commands below. Running docker container ls
should list the peopledepot-web image
, e.g.:
-
Create an .env.dev file from .env.dev-sample
cp .env.dev-sample .env.dev
-
Build and run the project via the script
./scripts/buildrun.sh
-
Create a super user for logging into the web admin interface
docker-compose exec web python manage.py createsuperuser
-
Browse to the web admin interface at
http://localhost:8000/admin/
and confirm the admin site is running. Use the credentials you created in Step 2 (above) to log in.
To stop the service-container, but not destroy it (often sufficient for day-to-day work):
docker-compose stop
To stop and destroy the service container:
docker-compose down
Add the -v
flag to destroy the data volumes as well:
docker-compose down -v
Click Pages above to see all documentation in alphabetic order. The below list organizes the documentation and excludes some less critical documentation.
Onboarding
- Onboarding & offboarding all non-Product team members☑️
- Onboarding & offboarding Product team members☑️
- Additional technical onboarding for Developers☑️
Guides
Draft
- How-Knowledgebase-will-use-People-Depot
- Auto generating seed data scripts from data - generic, non-people depot specific
- Requirements for People Depot V1☑️
- People Depot Tables and Fields☑️
- Other related data☑️
- Stakeholder's that will use People Depot☑️
Security Requirements, Test Cases, and Technical Design
- Security: Functional Requirements. Derived from Test Cases in Issue #150
- [Test Cases] - pending, see Test Cases in Issue #150
- Security: Field Level Proposal (using Github Copilot