A website to create and customize your email signature in seconds.
signature_name: demo
personal_information:
name: Your name
title: Your title
organization_name: Your organisation
organization_url: https://web.com
email: [email protected]
additional: Workplace adress or quote
image:
is_image_selected: false
image_link: https://raw.githubusercontent.com/MorganKryze/Email-Signature-Generator/main/src/assets/default.jpg
image_type: photo
socials:
is_web_selected: true
web_link: https://example.com
is_github_selected: true
github_link: https://example.com
is_instagram_selected: false
instagram_link: None
is_linkedin_selected: true
linkedin_link: https://example.com
is_slack_selected: false
slack_link: None
is_youtube_selected: true
youtube_link: https://example.com
is_twitter_selected: false
twitter_link: None
is_facebook_selected: true
facebook_link: https://example.com
Config file example (yaml format).
The project has been deployed to vercel and all services are available here.
- Python 3.9 (not higher because of Django 4.2.9)
To build the project, you can either download the zip file or clone the repository:
git clone https://github.com/MorganKryze/Emails-Signature-Generator-Website.git
In addition, you will need to install the following libraries in your python environment:
cd Emails-Signature-Generator-Website
pip install -r requirements.txt
Note
I recomment using a virtual environment (venv or conda) to avoid conflicts with your other projects.
You also need gettext to compile the translations. The details instructions are available here.
Finally, you will need to create a .env file in the root directory of the project with the following content (you may copy the .env.example file and replace the values with yours, then rename the file to .env):
DJANGO_SECRET_KEY=your_django_secret_key
IS_IN_DEBUG_MODE=False
The DJANGO_SECRET_KEY
is a random string of characters that you will need to generate (at least 50 characters). You can use the following command to generate it:
python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
The IS_IN_DEBUG_MODE
variable is a boolean that indicates if the project is in debug mode or not. If you want to run the project in debug mode, you will need to set the variable to True
. Otherwise, you will need to set it to False
(for deployement purpose).
To be able to display the version of the project on the website, you will need to make request to the GitHub API. As the unauthenticated requests are limited, you will need to create a token on your GitHub account. You can follow the instructions here. Then, you will need to add the token to the environment variables :
Add your Github token to the environment variables:
GITHUB_TOKEN=your_github_token
Or add your token to your .bashrc or .zshrc file:
export GITHUB_TOKEN=your_github_token
Note
When you plan to deploy the project, you will need to add the environment variables in your deployment environment (vercel or another) so they can be accessible byt your code (no modification of this code necessary).
Now you may use the executable files from the dev_wrokflow folder to run the project:
This command will start the server on your local machine:
sh dev_workflow/run.sh
This command will create the ids for the messages of the app:
sh dev_workflow/create_trans_ids.sh
This command will compile the messages of the app:
sh dev_workflow/load_trans.sh
Here are the most important files and directories of the project( you may ignore the other files and directories):
Emails-Signature-Generator-Website
├── dev_workflow
│ ├── create_trans_id.sh
│ ├── load_trans.sh
│ └── run.sh
├── generator
│ ├── locale
│ │ ├── de
│ │ ├── en
│ │ ├── es
│ │ └── fr
│ ├── templates
│ │ ├── base.html
│ │ ├── signature-template.html
│ │ └── 404.html
│ ├── forms.py
│ ├── tools.py
│ ├── urls.py
│ └── views.py
├── config
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── assets
│ └── img
│ └── ...
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
├── .env.example
├── manage.py
├── build_files.sh
└── vercel.json
The dev_workflow
directory contains the scripts to run the project, update the translations. To add a new language, you will need to add it in the settings.py and update the shells (include new lines with the language code).
The generator
directory contains the main files of the project.
- The
locale
directory contains the translations of the app (english, spanish, french and german) inside .po files. - The
templates
directory contains the html files for the navigation and the template for the signature (if you do not know what bas.html is I recommend you to read this exchange). - The
forms.py
file contains the form to create a signature. - The
tools.py
file contains the functions to generate the html from the data collected from the form. - The
urls.py
file contains the links between the patterns and views. - The
views.py
file contains the views associated with the html files.
The config
directory contains the settings of the project. For a Django project, this directory is created using the command django-admin startproject config
. This folder can manage different apps like the generator
app.
- The
settings.py
file contains the overall settings of the project (installed apps, middleware, databases, etc) and the settings for the internationalization. - The
urls.py
file contains the main urls of the project (the urls of the apps are included here associated with the i18n). - The
wsgi.py
file contains the settings for the WSGI (Web Server Gateway Interface) which is a specification that describes how a web server communicates with web applications (Note: add the following line to the fileapp = application
for the vercel deployment).
The assets
directory contains the images of the project, would it be svg or jpg files.
The build_files.sh
file is a shell script to build the files of the project for the deployment. The vercel.json
file is the configuration file for the vercel deployment that indicates the build command and the output directory.
The manage.py
file is a command-line utility that lets you interact with this Django project in various ways. You can read more about it here.
The .env.example
file is an example of the environment variables that you may need to run the project. You will need to create a .env
file with the same variables and their values. Keep in mind not to share your .env
file with anyone or to put it in your git repository.
- Website
- Github
- Slack
- Youtube
- English
- French
- Spanish
- German
- Custom the font
- Custom the color
- Choose the html template
- Add more social media
- Add more email clients
- Add more languages
Add informative popups or banners for issues or warnings
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE.md file for details.