Post

Serenity Profiles

Image Processing web-application

Serenity Profiles

Serenity Profiles is a Flask-based web application that allows users to create and manage personalized profiles with customizable avatars, backgrounds, and titles.

Features

  • User Registration and Login
  • Profile Management
  • Dynamic Profile Image Generation
  • View Profiles of all Registered Users

Getting Started Locally

Follow these steps to run the project on your local machine:

1. Clone the repository

1
2
git clone https://github.com/RyuZinOh/image-processor
cd image-processor
1
2
python -m venv venv
source venv/bin/activate   # On Windows, use venv\Scripts\activate

3. Install the required packages

1
pip install -r requirements.txt

4. Set up environment variables

Create a .env file in the root directory of the project and add the following variables:

VariableDescription
MONGODB_URLYour MongoDB connection string
SECRET_KEYA randomly generated secret key for the app

Example .env file:

1
2
MONGODB_URL="your_mongodb_connection_string"
SECRET_KEY="your_secret_key"

5. Run the application

1
python app.py

The application will be accessible at http://127.0.0.1:5000.


Docker Usage

To run the application in a Docker container, follow the steps below:

1. Pull the Docker image

1
docker pull safallama/imageprocesor:v1.0

2. Run the container

1
docker run -p 5000:5000 -e MONGODB_URL="mongodb://host.docker.internal:27017/<your-db-name>" -e SECRET_KEY="your_secret_key" safallama/imageprocesor:v1.0

Note:

  • Replace your_secret_key with a randomly generated string.
  • The host.docker.internal URL ensures Docker can access your local MongoDB instance.

Contributing

Feel free to make modifications and submit a pull request. I’ll review it and merge if everything looks good!


Warning

The Docker image prioritizes functionality over UI/UX since it was originally a prototype. However, following the setup instructions ensures the application runs as expected.


Demo Video:

This post is licensed under CC BY 4.0 by the author.