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 startThe 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 hostnameWhen 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 TRACKINGTo Generate A Random String Key You Can Execute ...
$ openssl rand -base64 32Set Up the Logger File, in Development this file is in .gitignore to prevent sharing app logs to Github.
touch app.logThere 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