Automatic Procurement Management System BETA
Some of the Required List of Utilies required to run AutoProc
- Windows 10 or Windows 11
- MySQL version 8 or above
- Node.js and NPM Node.js for the Runtime and Package Manager version 18 or above
NOTE: For MYSQL you must create a dedicated connection user for the database ex:
autoproc-su-admin,
NOTICE! It is recommended /or (required) to always add a secured password for the default user which is root to prevent unauthorized changes to the database.
Deploying to a Docker container is still in the planning phase but once it's incrementally adopted some of the requirements above will be stripped out since docker handles most of these by default.
If the requirements above are all satisfied then you can run the app
# Install NodeJs Packages npm run install # Initiale Data From Prisma Schema npx prisma push # Build App npm run build # then npm run start
The SSL Configuration is still a heavily tested section of the App and required the need to purchase and SSL.
For Local Area Network Testing...
# Install Make Cert This is for Development choco mkcert mkcert localhost #can add other custom hostname
When Deploying the App for Production, these Environments must exists in the App Context
# DATABASE URI DATABASE_URL=mysql://username:password@hostname:3306/autoproc_db # JWT SECRET USED FOR GENERATING HASHES JWT_SECRET=alphanumericrandomstring # AUTHENTICATION SECRET NEXTAUTH_SECRET=alphanumericstring # NEXTAUTH_URL_INTERNAL=https://192.168.0.0:3000 -> WHEN URL IS AN UNMASKED HOSTNAME # NEXTAUTH_URL=http://localhost:3000/ -> SET THIS WHEN IN DEPLOYMENT # PASSWORD_SECRET BCRYPT_SECRET=alphanumericstring # LOGGER (OPTIONAL) LOG_ERROR=./error.log # ERROR SPECIFIC LOG_DEFAULT=./app.log # ERROR HISTORY TRACKING
To Generate A Random String Key You Can Execute ...
$ openssl rand -base64 32
Set Up the Logger File, in Development this file is in .gitignore to prevent sharing app logs to Github.
touch app.log
There are two types of settings, the setting exposed by settings in database schema. and a settings.app.json in the server ./settings.app.json. The Settings Structure is still in Development but it is required to add the file to accomodate for the incoming settings feature.
touch ./app.settings.json