Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/app-generator/app-generator
AppSeed - The New Core | Work In Progress
https://github.com/app-generator/app-generator
ai-generator app-generator appseed appseed-generator appspeed code-generator django-generator free-generator generate-code generator-api generator-data generator-datasets generator-datatables opensource-generator python-generator source-code-generator
Last synced: 12 days ago
JSON representation
AppSeed - The New Core | Work In Progress
- Host: GitHub
- URL: https://github.com/app-generator/app-generator
- Owner: app-generator
- License: other
- Created: 2024-05-10T17:06:57.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-10-29T08:51:02.000Z (17 days ago)
- Last Synced: 2024-10-29T09:24:01.557Z (17 days ago)
- Topics: ai-generator, app-generator, appseed, appseed-generator, appspeed, code-generator, django-generator, free-generator, generate-code, generator-api, generator-data, generator-datasets, generator-datatables, opensource-generator, python-generator, source-code-generator
- Language: HTML
- Homepage: https://app-generator.dev
- Size: 20.6 MB
- Stars: 28
- Watchers: 6
- Forks: 6
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# [Open-Source App Generator](https://app-generator.dev/)
[Open-Source Tools](https://app-generator.dev/tools/django-generator) for solo-devs, students and companies - Generate [Digital Products](https://app-generator.dev/product/),
Update legacy code by chat, Inject new modules, Software Auto-healing, AI, Deployment automation (any provider), Docker, K8s.- 👉 `LIVE Demo`: https://app-generator.dev
- 👉 Get [Support](https://app-generator.dev/ticket/create/) via email and `Discord`
## Features
- [One-Click Sign IN](https://app-generator.dev/users/signin/): `GitHub`
- [Marketplace](https://app-generator.dev/product/): mirrored from [AppSeed](https://appseed.us)
- Generator (CLI & Web Versions)
- MVC: Django, NodeJS, Flask, FastAPI
- Full-Stack: React, Vue with any API Backend
- API [ manage visually the data ]
- eCommerce
- Website
- Deployment options: Render, AppSeed Cloud Digital Ocean, User Provider (AWS, DO, Azure)
- [Developer Tools](https://app-generator.dev/docs/developer-tools.html)
- [Django App Generator](https://app-generator.dev/tools/django-generator)
- [CSV Processor](https://app-generator.dev/tools/csv-processor)
- [DataBase Migrator](https://app-generator.dev/tools/db-migrator)
- [DataBase Processor](https://app-generator.dev/tools/db-processor)
- [Dynamic Django](https://app-generator.dev/docs/developer-tools/dynamic-django/index.html) Tool (commercial)
- [CSV to DB Table](https://app-generator.dev/docs/developer-tools/csv-to-table.html)
- [CSV to API](https://app-generator.dev/docs/developer-tools/csv-to-api.html)
- [CSV to DataTable](https://app-generator.dev/docs/developer-tools/csv-to-datatable.html)
- Sections:
- [Products](https://app-generator.dev/product/)
- [Blog](https://app-generator.dev/blog/)
- [Docs](https://app-generator.dev/docs/)
- [AI Agent](https://app-generator.dev/ai-processor/)
- `Tools/`
- `Deploy/`
- [Support](https://app-generator.dev/support/)
- [Custom Development](https://app-generator.dev/custom-development/)
## Stack
- Python/Django
- React
- Docker
- CI/CD - LIVE Deploy on Digital Ocean
## Manual Build
> Step #1 - Download the code
```bash
$ git clone https://github.com/app-generator/app-generator.git
$ cd app-generator
```> Step #2 - Install modules
```bash
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt
```> Step #3 - Set Up Database
```bash
$ python manage.py makemigrations
$ python manage.py migrate
```> Step #4 - Create the ENV file
The `.env` can be created from the `env.sample` file, provided in the root of the project
```bash
$ cp env.sample .env
```> Step #5 - Compile UI (that uses Tailwind)
```bash
$ pnpm i
$ pnpm run build
```> Step #5 - Execute `collectstatic` for Django statics
```bash
$ python manage.py collectstatic
$ python manage.py migrate
```> Start the APP
```bash
$ python manage.py createsuperuser # create the admin
$ python manage.py runserver # start the project
```At this point, the app runs at `http://127.0.0.1:8000/`.
## Compile [Documentation](https://app-generator.dev/docs/index.html)
The Documentation being generated by [](https://www.sphinx-doc.org/en/master/), the compilation requires a linux box
```bash
$ cd docs && rm -rf build && make html
# Or via a while loop
$ cd docs ; while true ; do rm -rf build/ ; make html ; sleep 10 ; done
```The output is saved on `docs/build` and rendered on `/docs/` URI
## CLI Interface
All CLI tools are listed by `dev_tools` subcommand:
`$ python manage.py dev_tools`
Below sections explains each dev_tool added to the codebase - If somethings is not working in your environment, please contact [support](https://appseed.us/support/).
### Generate Code
> For now, only Django code is supported.
```bash
$ python manage.py tool_generator -i # Print HELP
$ python manage.py tool_generator -f sources/input-template-volt.json
```The generated code is saved in `generated_code` DIR. Open the sources using your favorite editor and start the project. The easier way is to use Docker:
### Generate Project Template
> Using this tool, we can generate a JSON template used later by the generator
```bash
$ python manage.py tool_generator_interactive -i # Print HELP
$ python manage.py tool_generator_interactive # Generate JSON File
...
# (Truncated Output)
$ python manage.py tool_generator_interactive[?] Project Friendly Name: Some Django project
[?] The Backend Framework:
> django
flask (soon)
nodejs (soon)[?] The UI Kit:
> datta
volt
soft-dashboard[?] The Database:
> sqlite
mysql
pgsql
...
# (Truncated Output)
...
> File saved = sources\Nt5QWHGI_django_template.json
> HOW to generate code:
|-- python manage.py tool_generator -f sources/Nt5QWHGI_django_template.json
```By running the sugegsted command, we should be able to generate a valid Django Project.
### Upload to GitHub
> Note: For having SUCCESS on this operation, a `GITHUB_KEY` is required in `.env` - read [more](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).
```bash
$ python manage.py tool_github_uploader -i # Print HELP
$ python manage.py tool_github_uploader -d generated_code/GENERATED_PROJECT -k GITHUB_KEY
```Once the operation is finished, the generated project should be saved under the account associated with the `GITHUB_KEY`.
### Inspect DB (sqlite, MySql, PgSql)
```bash
# SQLite scan
$ python manage.py tool_db_processor -f media/tools/db_inspect/db_sqlite.json
# OR
# MySql scan
$ python manage.py tool_db_processor -f media/tools/db_inspect/db_mysql.json
...
# (Truncated Output)
> Processing media/tools/db_inspect/db_sqlite.json
|-- type : db
|-- DB driver : SQLITE
|-- DB name : media/tools/common/sample.sqlite3
|-- DB host : None
|-- DB port : None
|-- DB user : None
|-- DB pass : None> Dump data for [api_user_user]
> Dump data for [api_authentication_activesession]
> Dump data for [auth_group]
> Dump data for [api_user_user_groups]
> Dump data for [django_content_type]
> Dump data for [auth_permission]
> Dump data for [api_user_user_user_permissions]
> Dump data for [auth_group_permissions]
> Dump data for [django_admin_log]
> Dump data for [django_migrations]
> Dump data for [django_session]
```The SQL dump is done in the `tmp` DIRECTORY
```bash
ROOT
|-- tmp
|-- 05_27_58_SQLITE.sql
|-- 05_28_04_SQLITE_api_user_user
```
### Migrate DB
> Note: the feature works with SQLite, MySql and PostgreSQL.
The source and target DB credentials should be provided in JSON format. Here are the provided samples
- [SQLite Sample](https://github.com/app-generator/app-generator/blob/main/media/tools/db_migrator/db_source_sqlite.json)
- [MySql Sample](https://github.com/app-generator/app-generator/blob/main/media/tools/db_migrator/db_dest.json)> How to use it:
```bash
$ python manage.py tool_db_migrator -s DB_SOURCE.json -t DB_TARGET.json # Perform Checks
$ python manage.py tool_db_migrator -s DB_SOURCE.json -t DB_TARGET.json --migrate # Migrate the data
```
### CSV processor
Authenticated users can process CSV files and apply transformers.
> DEMO: https://app-generator.dev/tools/csv-processor/
### Inspect CSV Files
```bash
$ python manage.py tool_inspect_source -f media/tools/csv/csv_inspect.json # Truncated output
$ python manage.py tool_inspect_source -f media/tools/csv/csv_inspect.json -k # Print all rows
# OR for distant CSV files
$ python manage.py tool_inspect_source -f media/tools/csv/csv_inspect_distant.json
...
# (Truncated Output)
> Processing media/tools/csv/csv_inspect.json
|-- file: media/tools/csv/titanic.csv
|-- type: csv
{'PassengerId': {'type': 'int64'}, 'Survived': {'type': 'int64'}, 'Pclass': {'type': 'int64'}, 'Name': {'type': 'object'}, 'Sex': {'type': 'object'}, 'Age': {'type': 'float64'}, 'SibSp': {'type': 'int64'}, 'Parch': {'type': 'int64'}, 'Ticket': {'type': 'object'}, 'Fare': {'type': 'float64'}, 'Cabin': {'type': 'object'}, 'Embarked': {'type': 'object'}}
[1] - PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
[2] - 1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
[3] - 2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
[4] - 3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
[5] - 4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
[6] - 5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
[7] - 6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q
[8] - 7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S
[9] - 8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S
[10] - 9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S
...
```
### List available commands
```bash
$ python manage.py help
# (Truncated Output)
Type 'manage.py help ' for help on a specific subcommand.
Available subcommands:
...
[cli]
help_print_apps
help_print_cfg
help_print_models
...
```
### List Registered Apps
```bash
$ python manage.py help_print_apps
# (Truncated Output)
APP -> Webpack Loader
APP -> Administration
APP -> Authentication and Authorization
...
```
### List Registered Models
```bash
$ python manage.py help_print_models
# (Truncated Output)
APP -> Github
APP -> Google
APP -> Django_Quill
APP -> Celery Results
|--> django_celery_results.models.TaskResult
|--> id: AutoField
|--> task_id: CharField
|--> periodic_task_name: CharField
|--> task_name: CharField
|--> task_args: TextField
|--> task_kwargs: TextField
|--> status: CharField
|--> worker: CharField
|--> content_type: CharField
|--> content_encoding: CharField
|--> result: TextField
|--> date_created: DateTimeField
|--> date_done: DateTimeField
|--> traceback: TextField
|--> meta: TextField
|--> django_celery_results.models.ChordCounter
|--> id: AutoField
|--> group_id: CharField
|--> sub_tasks: TextField
|--> count: PositiveIntegerField
|--> django_celery_results.models.GroupResult
|--> id: AutoField
|--> group_id: CharField
|--> date_created: DateTimeField
|--> date_done: DateTimeField
|--> content_type: CharField
|--> content_encoding: CharField
|--> result: TextField
```
## Celery (async tasks)
- Make sure you have a Redis Server running: `redis://localhost:6379`
- `$ redis-cli` and type `ping`
- In the base directory inside `tasks_scripts` folder you need to write your scripts file.
- Run the celery command from the CLI.```bash
$ export DJANGO_SETTINGS_MODULE="core.settings"
$ celery -A core worker -l info -B
```> Executed Tasks, [tasks_scripts](https://github.com/app-generator/appseed-v2/tree/main/tasks_scripts) DIR as defined in the [EXEC Schedule](https://github.com/app-generator/appseed-v2/blob/main/core/celery.py)
- [Critical Tasks](https://github.com/app-generator/appseed-v2/blob/main/tasks_scripts/critical/critical_task.py) - executed every 5min
- [Hourly Tasks](https://github.com/app-generator/appseed-v2/blob/main/tasks_scripts/hourly/hourly_task.py)
- [Daily Tasks](https://github.com/app-generator/appseed-v2/blob/main/tasks_scripts/daily/daily_task.py)
- [Weekly Tasks](https://github.com/app-generator/appseed-v2/blob/main/tasks_scripts/weekly/weekly_task.py)
- [Monthly Tasks](https://github.com/app-generator/appseed-v2/blob/main/tasks_scripts/monthly/monthly_task.py)The output for each task can be found in the [LOGS](https://github.com/app-generator/appseed-v2/tree/main/tasks_scripts/logs) Directory.
Here is a LOG sample generated by a critical task that runs at every 5min:
- [tasks_scripts/logs/2024-05-20-16-30-critical_task.log](https://github.com/app-generator/appseed-v2/blob/main/tasks_scripts/logs/2024-05-20-16-30-critical_task.log)
## Team
> **Core**
- [Adrian](https://github.com/Sm0keDev) - Founder, Tech Lead, Automation, Design Patterns
- [Alex Paduraru](https://github.com/alexandru-paduraru) - Business Advisor & Investor
- [Valentin Raduti](https://github.com/deroude) - Full-Stack Senior (Design Patterns, Auth, Automation, React)
- [Teo Deleanu](https://github.com/tdeleanu) - Full-Stack Senior> **Developers/Contractors**
- [Mominur](https://github.com/mominur-helios) - Django/React Developer
- [Hasib](https://github.com/hasib-helios) - Django/React Developer
- [Sugeng](https://github.com/sgnd) - CI/CD, Deployment, Docker
- [Nur Askiah](https://github.com/nuraskiah) - Django/React Developer
- [Dhafit](https://github.com/dhafitf) - UI/UX, Frontend
- [Anamul](https://github.com/MySecondLanguage) - Python, Django TL
## LICENSE
[@EULA](./LICENSE.md)
---
Crafted and actively supported by [AppSeed](https://appseed.us/) - **