official discord server: https://discord.gg/tH7QnHApwu
online version (at least for now): https://trinkey.pythonanywhere.com
here at smiggins incorporated (real company trust), we like to promote a kind and inclusive argument. this means that zero racism, sexism, homophobia, etc. will be tolerated in anywhere related to this project, including github issues, the discord server, and the official main instance. if you think that someone violates this and you believe that they are doing something wrong, feel free to reach out to @trinkey. if you don't agree with this, then don't start drama about it, just leave and pretend smiggins doesn't exist.
If you would like to help translate this website, read this file
If there is a specific thing you want to do, you can make an issue (if an existing doesn't already exist).
Once you finish programming you can create a new fork with your code and then make a pull request with it.
Anyone who gets contributor access to the repository is decided by @trinkey. If you think you are deserving of getting it and don't currently have it, let her know.
Finally, to compile typescript/less, you need to install those npm packages
(npm i -g less typescript less-plugin-clean-css
). Then, to compile
typescript, you can run tsc
assuming your working directory in your console
is somewhere within this project. To compile less, you can run
python compile-less.py
in the root directory of this project.
-
Clone the github repo or download the files
-
With python, install the needed libraries (
python -m pip install --upgrade -r requirements.txt
, or usepy -m ...
on windows) -
Create the
_api_keys.py
file:touch ~/smiggins/smiggins/backend/_api_keys.py echo "auth_key = b'some random text this can be anything'" > ~/smiggins/smiggins/backend/_api_keys.py
if you're on Windows then
use linuxit's probably easier to do this using file explorer -
In the folder REPO_BASE/smiggins run the command
python3 manage.py migrate
(once againpy ...
for windows) -
In the settings.json file, make sure the site_url property is set properly
-
Then, to start the server, run
python3 manage.py runserver
(py ...
on windows still). If you want to start the server but already have the files, just do this step again. When updating versions, repeat step four too assuming you don't delete the_api_keys.py
file, then you'd have to do step three again too.
-
Create a venv (the name can be anything). if you already have one feel free to skip this step ```bash
mkvirtualenv VENV_NAME --python=/usr/bin/python3.10
-
On the webapp setup page, create a new webapp. If you already have one, delete it and recreate it if it has a different config. You should click the following buttons in this order:
- Add a new web app
- Next
- Manual configuration
- Python 3.X (it doesn't matter)
- Next
-
On the webapp dashboard, in the "Virtualenv" section, you are going to want to enter the path to your venv. It should be
/home/USERNAME/.virtualenvs/VENV_NAME
. -
Click the "Start a console on this virtualenv" button to create a console in the venv. Then install needed libraries.
python -m pip install --upgrade -r requirements.txt
-
Clone the github repo
cd ~ git clone https://github.com/jerimiah-smiggins/smiggins.git # Optional: Change branch git switch branch-name
-
Open the file at
/var/www/USERNAME_pythonanywhere_com.wgsi.py
and put the following python code, replacing "USERNAME" with your PythonAnywhere username:import os import sys path = '/home/USERNAME/smiggins/smiggins' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'smiggins.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
-
Back on the webapp dashboard, in the "Static Files" section, make an entry for
/static/
with the path set to/home/USERNAME/smiggins/smiggins/collected-static
-
In the file at
/home/USERNAME/smiggins/smiggins/settings.json
, make sure the following settings are set:- debug:
False
- website_url: The url of your website. Likely "https://USERNAME.pythonanywhere.com" You can configure all of the other settings in this file.
- debug:
-
Create the
_api_keys.py
file:touch ~/smiggins/smiggins/backend/_api_keys.py echo "auth_key = b'some random text this can be anything'" > ~/smiggins/smiggins/backend/_api_keys.py
-
In your venv console, run the following commands to create the database and setup the static files:
cd ~/smiggins/smiggins python manage.py collectstatic python manage.py migrate
-
Create a new webapp using the following settings:
- Manual configuration
- Python 3.10
-
Install and update the required libraries
python -m pip install --upgrade -r requirements.txt
-
Clone the github repo
cd ~ git clone https://github.com/jerimiah-smiggins/smiggins.git # Optional: Change branch git switch branch-name
-
Open the file at
/var/www/USERNAME_pythonanywhere_com.wgsi.py
and put the following python code, replacing "USERNAME" with your PythonAnywhere username:import os import sys path = '/home/USERNAME/smiggins/smiggins' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'smiggins.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
This file can be found at the url https://www.pythonanywhere.com/user/USERNAME/files/var/www/USERNAME_pythonanywhere_com.wgsi.py
-
Back on the webapp dashboard, in the "Static Files" section, make an entry for
/static/
with the path set to/home/USERNAME/smiggins/smiggins/collected-static
-
In the file at
/home/USERNAME/smiggins/smiggins/settings.json
, make sure the following settings are set:- debug:
False
- website_url: The url of your website. Likely "https://USERNAME.pythonanywhere.com" You can configure all of the other settings in this file.
- debug:
-
Create the
_api_keys.py
file:touch ~/smiggins/smiggins/backend/_api_keys.py echo "auth_key = b'some random text this can be anything'" > ~/smiggins/smiggins/backend/_api_keys.py
-
In your venv console, run the following commands to create the database and setup the static files:
cd ~/smiggins/smiggins python3.10 manage.py collectstatic python3.10 manage.py migrate
To clone the newest version, do the following commands in the
~/smiggins
folder:
git stash
git pull
git stash pop
Then, in the venv console, run these commands in the ~/smiggins/smiggins
folder:
python manage.py collectstatic
python manage.py migrate
Then, just restart the server from the webapp dashboard!
To clone the newest version, do the following commands in the
~/smiggins
folder:
git stash
git pull
git stash pop
Then, in the venv console, run these commands in the ~/smiggins/smiggins
folder:
python3.10 manage.py collectstatic
python3.10 manage.py migrate
Then, just restart the server from the webapp dashboard!
go to the issues tab and make a new issue (make sure you're logged in with github)
First, you need to make sure 2 step verification is enabled for the gmail account you want to send the emails from. Do this by going to this link.
Next, you'll need to create an app password, by going to this link. The app name can be anything you want, and it should show you four strings of four letters. Save this for the next step.
Finally, in the _api_keys.py
file in the backend folder, put the following
code, modifying it for your needs:
smtp_auth = {
"EMAIL_HOST": "smtp.gmail.com",
"EMAIL_HOST_USER": "[email]@gmail.com", # put the full email, like [email protected]
"EMAIL_HOST_PASSWORD": "xxxx xxxx xxxx xxxx", # put in the password obtained in the previous step
"EMAIL_PORT": 587,
"EMAIL_USE_TLS": True,
"DEFAULT_FROM_EMAIL": "[email]@gmail.com" # put the full email, like [email protected]
}