Hello everyone!
Thank you for purchasing solution. If you have any questions that are beyond the scope of this help file, please feel free to email via my user page contact form here. Thanks so much!
eng
checked for English).
C:\Program Files\Tesseract-OCR
tesseract -v
You should see the installed version and copyright.
tesseract path\to\image.png output-text-file -l eng
path\to\image.png
with the actual image path.output-text-file.txt
.Although Document Management can be run without any development experience, it would be much easier if you already have some experience. The following instructions allow you to run a local copy on your machine.
If you have not yet installed nodejs, please Download and globally install nodejs : https://nodejs.org
Note: download
Recommended For Most Users version
A detailed instruction on how to install NodeJS is available here.
Note: Make sure you have Node Latest version. Also globally installed typescript.
Installing Angular-CLI globally is as simple as running this simple command:
npm install -g @angular/cli
After the tools is installed, go inside of the Angular directory and run below command to install dependencies:
Run npm install -f
to install node dependencies defined in package.json.
To run a local copy in development mode, replace REST API URI (apiUrl) variable in environment file inside src --> environments -->environment.ts
execute ng serve
and go to http://localhost:4200 in your browser.
To run the local copy in production mode and build the sources, execute
ng build --prod
. This will builds a production version of the application. All
html,css and js code is minified and put to dist folder. The contents of
this folder you can to put to your production server when publishing the application.
In Order to host the application on Windows or Linux Server even you don't need to create database manully. you just need to change the connection string and based on you connection setting database will be created automatically once application initialize.
Change the connection in appsettings.Development.json file as describe as below image:
Based on your preferred database (MySQL or SQL Server), install the server and create a user
with full
privileges.
Then configure this in the appsettings.json
file.
Build/MySQLProviderBuild
Build/SqlServerProviderBuild
C:\inetpub\wwwroot\{{yoursitename}}
yoursitename
with your chosen name (e.g.,
mlglobtech
).
C:\inetpub\wwwroot\{{yoursitename}}
wwwroot
folder > Properties > Security tabIIS_IUSRS
> Click Check Name > OKC:\inetpub\wwwroot\yoursitename\Documents
appsettings.json
and appsettings.Development.json
"NLog": "data source=SERVER_NAME;Initial Catalog=DB_NAME;user id=USERNAME;password=PASSWORD;TrustServerCertificate=True;Connection Timeout=90;"
"DocumentDbConnectionString": "data source=SERVER_NAME;Initial Catalog=DB_NAME;user id=USERNAME;password=PASSWORD;TrustServerCertificate=True;Connection Timeout=90;"
"NLog": "server=SERVER_NAME;port=3306;user id=USERNAME;password=PASSWORD;database=DB_NAME;Connection Timeout=90;"
"DocumentDbConnectionString": "server=SERVER_NAME;port=3306;user id=USERNAME;password=PASSWORD;database=DB_NAME;Connection Timeout=90;"
eng
checked for
English).C:\Program Files\Tesseract-OCR
tesseract -v
You should see the installed version and copyright.
tessdata
folder placed
inside the wwwroot
directory.C:\\inetpub\\wwwroot\\{{yoursitename}}\\wwwroot\\tessdata
tesseract.exe
.C:\\inetpub\\wwwroot\\{{yoursitename}}\\tessdata
folder to
user
IIS_IUSRS.
tesseract path\to\image.png output-text-file -l eng
path\to\image.png
with the actual image path.output-text-file.txt
.sudo apt update
sudo apt upgrade
sudo apt install mysql-server
sudo mysql_secure_installation
sudo systemctl status mysql
mysql -u root -p
CREATE USER '{{yourchoiseUser}}'@'localhost' IDENTIFIED BY '{{yourchoisePassword}}';
GRANT ALL PRIVILEGES ON *.* TO '{{yourchoiseUser}}'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
mysql -u {{yourchoiseUser}} -p
CREATE DATABASE {{yourchoiseDatabase}};
USE {{yourchoiseDatabase}};
EXIT;
sudo apt-get update
sudo apt install dotnet-sdk-8.0
dotnet --version
sudo apt update
sudo apt upgrade
sudo apt install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
http://localhost
or http://your-server-ip
to
view Nginx welcome page.
sudo ufw allow 'Nginx Full'
create directory on path /var/www/{{yoursitename}}
Build/MySQLProviderBuild
into
/var/www/{{yoursitename}}
.
sudo chmod -R 777 /var/www/{{yoursitename}}/wwwroot
sudo chmod -R 777 /var/www/{{yoursitename}}/Documents
appsettings.json
& appsettings.Development.json
:
sudo nano /var/www/{{yoursitename}}/appsettings.json
Example:
"NLog": "server={{servername}};port={{port}};user id={{username}};password={{password}};database={{dbname}};TrustServerCertificate=True;Connection Timeout=90;"
"DocumentDbConnectionString": "server={{servername}};port={{port}};user id={{username}};password={{password}};database={{dbname}};TrustServerCertificate=True;Connection Timeout=90;"
dotnet /var/www/{{yoursitename}}/DocumentManagement.API.dll
If successful, you’ll see: Application is running on:5008
sudo nano /etc/systemd/system/{{yoursitename}}.service
Paste Below Code:
[Unit]
Description={{yoursitename}} .NET Core App
After=network.target
[Service]
WorkingDirectory=/var/www/{{yoursitename}}
ExecStart=/usr/bin/dotnet /var/www/{{yoursitename}}/DocumentManagement.API.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-yourapp
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable {{yoursitename}}.service
sudo systemctl start {{yoursitename}}.service
sudo systemctl status {{yoursitename}}.service
sudo journalctl -fu {{yoursitename}}.service
sudo nano /etc/nginx/sites-available/{{yoursitename}}.conf
Paste:
server {
listen 80;
server_name {{yoursitedomainname}} www.{{yoursitedomainname}};
location / {
proxy_pass http://localhost:5008;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
error_log /var/log/nginx/{{yoursitedomainname}}.log;
access_log /var/log/nginx/{{yoursitedomainname}}.log;
}
sudo ln -s /etc/nginx/sites-available/{{yoursitename}}.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl status nginx
sudo apt update
sudo apt upgrade
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-eng
sudo apt install tesseract-ocr-[lang]
tesseract -v
tessdata
directory (if needed):
mkdir -p /var/www/{{yoursitename}}/wwwroot/tessdata
sudo chmod -R 755 /var/www/{{yoursitename}}/wwwroot/tessdata
tesseract /path/to/image.png output-text -l eng
sudo apt-get install -y libtesseract-dev libleptonica-dev
find /usr -name "libtesseract.so*"
find /usr -name "libleptonica.so*"
cp /usr/lib/x86_64-linux-gnu/libtesseract.so* /var/www/{{yoursitename}}/x64/
cp /usr/lib/x86_64-linux-gnu/libleptonica.so* /var/www/{{yoursitename}}/x64/
/usr/local/lib/
path if applicable.
LD_LIBRARY_PATH
globally:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/var/www/{{yoursitename}}/x64/
source ~/.bashrc
Or edit:
sudo nano /etc/environment
LD_LIBRARY_PATH="/var/www/{{yoursitename}}/x64/:$LD_LIBRARY_PATH"
sudo systemctl restart {{yoursitename}}.service
sudo systemctl restart nginx
sudo apt update
sudo apt upgrade
sudo apt install mysql-server
sudo mysql_secure_installation
sudo systemctl status mysql
mysql -u root -p
CREATE USER '{{yourchoiseUser}}'@'localhost' IDENTIFIED BY '{{yourchoisePassword}}';
GRANT ALL PRIVILEGES ON *.* TO '{{yourchoiseUser}}'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
mysql -u {{yourchoiseUser}} -p
CREATE DATABASE {{yourchoiseDatabase}};
USE {{yourchoiseDatabase}};
EXIT;
sudo apt-get update
sudo apt install dotnet-sdk-8.0
dotnet --version
sudo apt update
sudo apt upgrade
sudo apt install apache2
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
sudo systemctl restart apache2
create directory on path /var/www/{{yoursitename}}
Build/MySQLProviderBuild
into
/var/www/{{yoursitename}}
.
sudo chmod -R 777 /var/www/{{yoursitename}}/wwwroot
sudo chmod -R 777 /var/www/{{yoursitename}}/Documents
appsettings.json
& appsettings.Development.json
:
sudo nano /var/www/{{yoursitename}}/appsettings.json
Example:
"NLog": "server={{servername}};port={{port}};user id={{username}};password={{password}};database={{dbname}};TrustServerCertificate=True;Connection Timeout=90;"
"DocumentDbConnectionString": "server={{servername}};port={{port}};user id={{username}};password={{password}};database={{dbname}};TrustServerCertificate=True;Connection Timeout=90;"
dotnet /var/www/{{yoursitename}}/DocumentManagement.API.dll
If successful, you’ll see: Application is running on:5008
sudo nano /etc/systemd/system/{{yoursitename}}.service
Paste Below Code:
[Unit]
Description={{yoursitename}} .NET Core App
After=network.target
[Service]
WorkingDirectory=/var/www/{{yoursitename}}
ExecStart=/usr/bin/dotnet /var/www/{{yoursitename}}/DocumentManagement.API.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-yourapp
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable {{yoursitename}}.service
sudo systemctl start {{yoursitename}}.service
sudo systemctl status {{yoursitename}}.service
sudo journalctl -fu {{yoursitename}}.service
sudo nano /etc/apache2/sites-available/{{yoursitename}}.conf
Paste:
<VirtualHost *:80>
ServerName {{yoursitedomainname}} www.{{yoursitedomainname}}
ProxyPreserveHost On
ProxyPass / http://localhost:5008/
ProxyPassReverse / http://localhost:5008/
ErrorLog ${APACHE_LOG_DIR}/yourapp-error.log
CustomLog ${APACHE_LOG_DIR}/yourapp-access.log combined
</VirtualHost>
sudo a2ensite {{yoursitename}}.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
sudo systemctl status apache2
sudo apt update
sudo apt upgrade
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-eng
sudo apt install tesseract-ocr-[lang]
tesseract -v
tessdata
directory (if needed):
mkdir -p /var/www/{{yoursitename}}/wwwroot/tessdata
sudo chmod -R 755 /var/www/{{yoursitename}}/wwwroot/tessdata
tesseract /path/to/image.png output-text -l eng
sudo apt-get install -y libtesseract-dev libleptonica-dev
find /usr -name "libtesseract.so*"
find /usr -name "libleptonica.so*"
cp /usr/lib/x86_64-linux-gnu/libtesseract.so* /var/www/{{yoursitename}}/x64/
cp /usr/lib/x86_64-linux-gnu/libleptonica.so* /var/www/{{yoursitename}}/x64/
/usr/local/lib/
path if applicable.
LD_LIBRARY_PATH
globally:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/var/www/{{yoursitename}}/x64/
source ~/.bashrc
Or edit:
sudo nano /etc/environment
LD_LIBRARY_PATH="/var/www/{{yoursitename}}/x64/:$LD_LIBRARY_PATH"
sudo systemctl restart {{yoursitename}}.service
sudo systemctl restart nginx
The project structure is as follows:
├──DocumentManagement.sln/ * projects solution │ │ │ ├──DocumentManagement.API * REST API Controller, Dependancy configuration, Auto mapper profile │ │ │ ├──DocumentManagement.MediatR * Command handler, Query handler, Fluent API validation │ │ │ ├──DocumentManagement.Repository * Each entity repository │ │ │ ├──DocumentManagement.Domain * Entity framework dbContext | | │ ├──DocumentManagement.Common * Generic repository and Unit of work patterns │ │ │ ├──DocumentManagement.Data * Entity classes and DTO classes │ │ │ ├──DocumentManagement.Helper * Utility classes
The directory structure is as follows:
UserDocumentManagement/ ├──src/ * source files that will be compiled to javascript │ │ │ ├──test.ts * test │ │ │ ├──styles.scss * globally stylesheet │ │ │ ├──index.html * application layout │ │ │ ├──main.ts * entry file for our browser environment | | │ ├──main.server.ts * entry file for our server environment │ │ │ ├──polyfills.ts * polyfills file │ │ │ ├──favicon.ico * favicon │ │ │ ├──app/ * application code - our working directory | | | │ | ├──category/ * application code - document category add,edit and list | | | │ | ├──core/ * components,services and directives - only imported once in the AppModule | | | │ | ├──dashboard/ * basic charts and statistics | | | │ | ├──document/ * document add, edit, permission and list | | | │ | ├──document-audit-trail/ * document audit logs | | | │ | ├──document-library/ * list of assigned documents for view | | | │ | ├──login/ * authentication management | | | │ | ├──notification/ * user notification list | | | │ | ├──operation/ * pages action list | | | │ | ├──role/ * role add, edit and list | | | │ | ├──screen/ * list of screens(pages) | | | │ | ├──screen-operation/ * mapping screen with operation(action) | | | │ | ├──user/ * usermanagement │ │ │ │ │ ├──app.component.ts * main application component │ │ │ │ │ ├──app.component.html * main application html file │ │ │ │ │ ├──app.component.scss * main application styles │ │ │ │ │ ├──app.module.ts * main application module │ │ │ │ │ ├──app.routing.ts * application routes │ │ │ │ │ ├──http-interceptor.module.ts * set rest service uri for each rest call and manage loading for rest calls │ │ │ | │ ├──shared/ * shared modules folder │ │ │ ├──environments/ * environments │ └──assets/ * static assets are served here │ ├──e2e/ * will be used for end-to-end tests to ensure functionality for users before deploying ├──angular.json * used for configuration of project specific settings ├──karma.conf * config file for karma testing framework ├──package.json * contains all dependencies used for production and development ├──README.md * read me file ├──tsconfig.app.json * config app for typescript ├──tsconfig.json * config for typescript ├──tsconfig.spec.json * config spec for typescript └──tslint.json * Angular-CLI includes an automatic Typescript-Linter, which can be configured with this file
{ path: '', component: DocumentListComponent, data: { claimType: 'document_list' }, canActivate: [AuthGuard] },
<button *hasClaim="'document_edit'" (click)="editDocument(document)"> <i class="las la-pen" > </i> Edit </button>
claimType: {screen/page name}_{operation/ action name}
hasClaim: structural directive to show and hide action base on claim type
All questions you can send via the contact form HERE.
I will answer all questions within 24-48h in the order they were received.
Please do not panic if I do not answer too long – I love my buyers and I’ll answer for all questions ;)
More information about the terms of support you can see here: https://codecanyon.net/page/item_support_policy
Thanks for reading the Instruction, hope it’s been really helpful and resolved most of your concerns.