The Favicon Generator project is a website that allows users to upload an image or icon and it generates Favicons of different dimensions which the user can download. Click here for the designers' documentation. This repository contains the codebase and project files of Project Favicon by Team 63 of the Zuri project phase.
The Figma design can be seen here and the user flow here.
The list of all the major technologies used in the project.
Please ensure your codes and changes are properly tested.
Fork this repository to get a personal copy on your github account
To clone the forked repository to your local machine, copy the URL for the forked repo, open command prompt and run:
git clone <url-for-your-forked-repo>
Set your upstream remote so you can pull changes from upstream to update your repo by running:
git remote add upstream https://github.com/zuri-training/favicons_gen_proj_team_63
First create a dev branch by running:
git checkout -b dev
Then make sure you're in the dev branch by running:
git checkout dev
Then create the feature branch (the branch you will be pushing you work to) by running:
git checkout -b feature
NB: For consistency, I would recommend we all use the above naming scheme and make sure to create any new branch from the dev branch and not main branch. Ensure your local dev branch is up to date with upstream remote dev branch before creating new branch.
Tip: Check the Getting Started guide below
Make all your changes on your feature branch, add and commit your changes using a concise descriptive commit message
Pull latest updates from Upstream branch by running:
git pull upstream dev
NB: If conflicts are encountered after pulling changes, please resolve them locally first before committing
Publish your Feature Branch and changes to origin by running:
git push origin active
Go to Github, open a Pull Request to the Upstream Remote dev branch and request a review by tagging team members
NB: Add a proper description of the changes made when making a Pull Request for easy review.
Setup virtual environment:
- Go to your project folder in your code editor (you should have cloned the project by now from the steps above)
- Make sure in your terminal that you are in the root folder of the project
- Create a virtual environment with
virtualenv venv
- Then activate the virtual environment with
source venv/scripts/activate
- Make sure
venv
appears on the left side of your terminal to confirm that it has activted - Install the project dependencies with
pip install -r requirements.txt
. This will install Django and any other package for this project - Now your VS Code color-coding should adjust since you have installed all the packages
Setup Postgres:
-
Go to Postgres website and download the latest Postgres version for your OS
-
Run the installer make sure all options are ticked including pgAdmin 4
-
In the Password section, enter a password you will be using for your Postgres and take note of this password as you will be using it very often
-
In the Port section, leave the default port as 5432, don't change it
-
Click next until it starts installing
-
At the end of the install, uncheck Stack Builder and click finish
-
Open pgAdmin 4, when it loads, you will be asked to create master password. You can use the same password you used in Step 3, then click OK
-
Then on the left side panel, click on Servers and you will be asked for you password from Step 3. Enter it and also tick Save Password and click OK.
-
Then, still on the left side panel, right-click on Databases and create a new database
-
The database name should be
ZuriconDB
, enter it then click OK -
Now go to the project folder in your code editor (i.e. VS Code)
-
Create a
.env
file at the project root. -
Populate your
.env
with the following:DB_NAME=ZuriconDB USER=postgres PASSWORD=your postgres password HOST=localhost PORT=5432 SECRET_KEY=your django secret key DEBUG=True
-
Now you can go to your code editor and run
python manage.py makemigrations
-
Then after that run
python manage.py migrate
-
You should not get any errors when you run
python manage.py runserver
. If you do, pls ask any of the other devs
NB:
- It is highly advisable to use Git Bash as your terminal app as it easily shows the current branch you're working in
- Team members should please ask questions if anything is not clear!