Before running the project, ensure you have the following installed:
- Visual Studio or Visual Studio Code
- .NET SDK
- Docker
- XAMPP
- Redis, RabbitMQ, and MinIO (S3)
- Node
- Python 3.x installed and pip3 or pip (Python package installer).
- Pull the repository and check the prerequisites.
- Set up the Claude project according to the instructions.
- Generate the requirements for your project.
- Save the database file as
app.sql
. - Drop the database file into the
htdocs
folder of XAMPP. Ensure that XAMPP is running and Docker is up and running. - Navigate to the
CodeGenerator
folder and **runpip install -r requirements.txt
and then run./codegenerator_script.sh
. - The Streamlit app will open.
- Review the inputs: You can change the project name or leave it as is. Experiment with other settings once you're comfortable.
- Hit submit and scroll down to see the results.
- Go to the newly generated folder and execute the command
dotnet run
. - After execution, copy the API URL.
- Terminate the Streamlit app with
Ctrl+C
. - Re-run the app using
./codegenerator_script.sh
. - When the app reopens, click on Frontend and update the API URL you copied (replace
localhost
and the port number in the URL as needed, e.g.,https://localhost:5001/v1/api/
). - Submit and experiment further if needed by following the instructions at the bottom of the page.
- A new project will be generated in the same folder named
ReactTsOutput1
. - Open the newly generated React project.
- Install the necessary Node packages.
- Run the app.
- This will open the login window.
- Go to the database and copy the username and password (note: the password is not hashed for development purposes, but you can apply your own hashing algorithm).
- Login to the app and design your pages.
- Click Update UI to save your changes, Release UI to finalize it, and Preview UI to see a preview.
- Once satisfied, disable the DnD (drag and drop designer) by updating the
.env
file. - Re-run the project using
npm run dev
, and it will open the newly designed app directly. - Congratulations! You’ve created your first app without writing any code, but still built a custom-developed application.
- Deploy the app on a Docker container or contact us on Discord if you need help with deployment.
Use the following Docker commands to set up Redis, RabbitMQ, and MinIO (S3):
-
MinIO
docker run -d --name minio -p 9000:9000 --env-file .env \ -e MINIO_ROOT_USER=${MINIO_ROOT_USER} \ -e MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} \ -v minio-data:/data minio/minio:latest server /data
docker run -d --name minio -p 9000:9000 --env-file .env -e MINIO_ROOT_USER=$env:MINIO_ROOT_USER -e MINIO_ROOT_PASSWORD=$env:MINIO_ROOT_PASSWORD -v ${PWD}\minio-data:/data minio/minio:latest server /data
-
Redis
docker run -d --name redis -p 6379:6379 --env-file .env \ -v redis-data:/data redis:latest \ redis-server --requirepass "$(grep REDIS_PASSWORD .env | cut -d '=' -f2)" --appendonly yes
docker run -d --name redis -p 6379:6379 --env-file .env `-v redis-data:/data redis:latest ` redis-server --requirepass $(Get-Content .env | Select-String 'REDIS_PASSWORD' | ForEach-Object { ($_ -split '=')[1].Trim() }) --appendonly yes
-
RabbitMQ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 --env-file .env \ -v rabbitmq-data:/var/lib/rabbitmq rabbitmq:management
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 --env-file .env ` -v rabbitmq-data:/var/lib/rabbitmq rabbitmq:management
Add the following configurations to appsettings.json
for MinIO (S3), Redis, and RabbitMQ:
{
"MinIO": {
"AccessKey": "${MINIO_ROOT_USER}",
"SecretKey": "${MINIO_ROOT_PASSWORD}",
"Endpoint": "http://localhost:9000"
},
"Redis": {
"Connection": "localhost:6379,password=${REDIS_PASSWORD}"
},
"RabbitMQ": {
"Connection": "amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@localhost:5672/"
}
}
Ensure your database schema follows the guidelines provided by NeoApps.AI. You can find the guidelines here.
Save your database script in .sql
format. Example scripts are available on the guidelines page.
Upload your script to XAMPP by placing it in the htdocs
directory. This will allow it to be accessible via the XAMPP server.
Set up your MySQL database with the following parameters:
- Database Name: Your chosen database name
- Username:
root
(or your configured username) - Password: (leave empty if not set)
- Port:
3306
Update launchSettings.json
with the following parameters for backend generation:
"PARAMETER": "{project_id:1,server:localhost,uid:1,username:root,password:,databaseName:splitthebill,script:http://localhost/split_app_script.sql,statusOfGeneration:null,projectName:DemoApplication,DBexists:No,port:3306,rabbitMQConn:amqp://user:password@localhost:5672/,redisConn:localhost:6379,password=yourredispassword,apiflowurl:,fronttemplateurl:,Technology_Frontend:,Backend_technology:dotnet,buttonClicked:generate,projectType:,swgurl:,noderedurl:null}"
Update launchSettings.json
with the following parameters for frontend generation:
"PARAMETER": "{project_id:1,server:localhost,uid:1,username:root,password:,databaseName:splitthebill,script:http://localhost/split_app_script.sql,statusOfGeneration:,projectName:DemoApplication,DBexists:Yes,port:3306,rabbitMQConn:amqp://user:passord@localhost:5672/,redisConn:localhost:6379,password=yourredispassword,apiflowurl:,fronttemplateurl:,Technology_Frontend:reactts,Backend_technology:,buttonClicked:generate,projectType:dnd,swgurl:,noderedurl:}"
Below is a list of configuration parameters used in the project setup, along with their explanations:
- Description: The unique identifier for the project. You can use any number.
- Example:
1
- Description: The server where the database is hosted. This will be the database server (MySQL). Do not use a production database server here.
- Example:
localhost
- Description: The unique identifier for the user. Don't change this one.
- Example:
1
- Description: The database username. Make sure it's an admin user.
- Example:
root
- Description: The password for the database user.
- Example:
""
(empty string)
- Description: The name of the database to be used for the project.
- Example:
splitthebill
- Description: The URL or path to the SQL script used to initialize the database. This file is typically hosted on a web server in the XAMPP
htdocs
directory. - Example:
http://localhost/split_app_script.sql
- Description: The status of the project generation process. Ignore this, but don't change it.
- Example:
""
(empty string, to be updated during the process)
- Description: The name of the project. Use the project name without numbers or special characters to ensure smooth operation.
- Example:
ContentPlannerTest
- Description: Indicates whether the database already exists. For backend generation, this will be
NO
, and it will recreate the database tables. For frontend generation, it will beYES
. - Example:
"Yes"
- Description: The port number on which the database server is listening.
- Example:
3306
- Description: The connection URL for RabbitMQ, used when generating the backend and as an API connection URL while generating the frontend.
- Example:
https://localhost:5001/v1/api/
- Description: The connection string for Redis, typically used for caching.
- Example:
localhost:6379
- Description: The password for Redis connection.
- Example:
12345
- Description: The URL for the API flow. This will be explained in future documentation and videos.
- Example:
""
(empty, to be defined based on your setup)
- Description: The URL for the frontend template, used for project scaffolding. Future roadmap.
- Example:
""
(empty, to be defined based on your setup)
- Description: The technology stack used for frontend development. Don't change this for now.
- Example:
reactts
(React with TypeScript)
- Description: The technology stack used for backend development. Don't change this for now. It will be different for the backend.
- Example:
""
(empty, to be specified based on your project)
- Description: Indicates the action taken by the user, such as generating the project. Don't change this for now. This will be used to control generate, build, and deploy actions.
- Example:
"generate"
- Description: The type of project being generated, e.g., drag-and-drop (DND). No need to change anything here.
- Example:
"dnd"
- Description: The URL for Swagger, used for API documentation.
- Example:
""
(empty, to be filled after project setup). No need to change anything here for now.
- Description: The URL for Node-RED, a flow-based development tool. No need to change anything here for now.
- Example:
""
(empty, to be filled based on setup)
Once you generate the project, the generated code will be available in the bin/debug
folder.
Copy the generated code folder and place it into your repository or preferred directory.
Open the project in Visual Studio or Visual Studio Code and run it. If you encounter any errors, check your database schema for issues.
Generate the frontend code and ensure both the frontend and backend projects are configured correctly. Copy them into your repository or preferred directory.
If you need to regenerate the project or make changes to the database schema, drop the existing database tables and rerun the project.
After copying the projects, run the .NET API as needed.
Follow these steps, and you should be able to run the project and generate the apps without any issues.
Setup and Installation Guide For a detailed guide on setting up the project, generating the API, and hosting it locally, please refer to the Setup and Installation Guide.
- Tutorials: Hands-on tutorials to help you setup project , generate code , build code and host locally.
This guide includes step-by-step instructions and a video tutorial to help you through the entire process.
To help you get started and make the most of NeoApps.ai, we have prepared comprehensive documentation:
- Tutorials: Hands-on tutorials to help you build and deploy your first app.