Loading repository data…
Loading repository data…
flpp20191 / repository
Recgen is a no-coding shell of a rule-based expert system designed for building recommendation systems. It is an open-source framework developed using Python and the Django framework.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Recgen is a no-coding shell of a rule-based expert system designed for building recommendation systems. It is an open-source framework developed using Python and the Django framework.
Key Features and Concepts:
Before you begin, make sure you have the following installed on your system:
Start by cloning the repository to your local machine:
git clone https://github.com/flpp20191/RecGen.git
cd RecGen
It’s recommended to use a virtual environment to manage project dependencies. Follow the instructions below based on your operating system.
python3 -m venv venv
source venv/bin/activate
python -m venv venv
venv\Scripts\activate
After activating the virtual environment, you should see (venv) at the beginning of your command line prompt.
With the virtual environment activated, install the required Python packages using the requirements.txt file:
pip install -r requirements.txt
This command will install all necessary packages for the Django project.
The project can be configured to use SQLite or MySQL. By default, Django is configured to use SQLite, but you can switch to another database if needed.
.env.example to .env:In the root of your project directory, copy the .env.example file to create a new .env file:
cd root
cp .env.example .env
cd root
copy .env.example .env
SECRET_KEY:To ensure the SECRET_KEY is secure, generate a random key by running the following command:
python
from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())
This will output a secure key that you should copy and paste into your .env file under the SECRET_KEY variable:
SECRET_KEY=placeholder_generated_secret_key
In your .env file, set the DB_ENGINE to select which database backend you want to use. The available options are sqlite3, mysql.
If you want to use SQLite (default setup), set the following in your .env file:
DB_ENGINE=sqlite3
The default SQLite configuration requires no additional setup. It will create a db.sqlite3 file in the project directory.
To use MySQL, set the following in your .env file:
DB_ENGINE=mysql
DB_NAME=your_database_name
DB_USER=your_database_user
DB_PASSWORD=your_database_password
DB_HOST=your_database_host
DB_PORT=3306
Ensure that your MySQL server is up and running before proceeding.
The RECOMMENDATION_THRESHOLD defines the minimum score required for a recommendation to be considered valid; any value below this threshold is marked as a failure and presented to the user as a goal to achieve.
Example:
RECOMMENDATION_THRESHOLD=75
After configuring the environment variables, run the setup command to create the database, apply migrations, and populate initial data:
cd..
python manage.py setup
This command will:
.env file.Question_type table.Once the setup is complete, start the Django development server:
python manage.py runserver
Visit http://127.0.0.1:8000/ in your web browser to see the project in action.
To create a superuser account for accessing the Django admin interface, run:
python manage.py createsuperuser
Follow the on-screen prompts to set up the username, email, and password. Use superuser credentials to access system.
To upload data to the system, use the provided Excel files. You can download the template Excel file, fill it out, and upload it via the interface.
Download the Excel Template:
Navigate to Analytics > Data Upload in the application to download the Excel template file.
Fill Out the Excel File:
Category, Recommendation, Question, and RecommendationQuestion.Upload the Filled Excel File:
Analytics > Data Upload and use the upload form to upload the completed file.To enable email functionality in your Django application using Google's SMTP server, follow these steps:
Enable Less Secure Apps:
Set Up App Password (Optional):
Configure SMTP Settings in .env:
Add the following SMTP settings to your .env file:
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@gmail.com
EMAIL_HOST_PASSWORD=your_email_password_or_app_password
DEFAULT_FROM_EMAIL=your_email@gmail.com
Replace your_email@gmail.com with your Gmail address and your_email_password_or_app_password with either your Google account password or the App Password you generated.
Test the Email Setup:
python manage.py shell
Then run the following commands in the shell:
from django.core.mail import send_mail
send_mail(
'Test Email',
'This is a test email from Django.',
'your_email@gmail.com',
['recipient@example.com'],
fail_silently=False,
)
If the email is sent successfully, your SMTP setup is working.
If the project includes tests, you can run them with:
python manage.py test
When you are done working on the project, deactivate the virtual environment by running:
deactivate
.env file are correct.Category, Recommendation, Question, RecommendationQuestion)..env file and ensure that you have enabled access for less secure apps or set up an App Password if using Google SMTP.If you'd like to contribute to this project, you can fork the repository and submit a pull request with your changes.
Copyright 2025 RecGenProject
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Kodors, S.; Apeinans, I.; Zarembo, I.; Lonska, J. RecGen: No-Coding Shell of Rule-Based Expert System with Digital Twin and Capability-Driven Approach Elements for Building Recommendation Systems. Appl. Sci. 2025, 15, 10482. https://doi.org/10.3390/app151910482