Thank you for purchasing my script. If you have any questions that are beyond the scope of this help file, feel free to email me.
Revolutionize your assessment processes with our state-of-the-art Visual Assessment and Exam Management System. Built on the robust .NET Core framework & Vue.js, this innovative solution leverages webcam technology to monitor candidates and incorporates advanced features to ensure a secure and effective evaluation experience.
Visual Studio Code.
Database provider software (SQL Server / MySql / Sqlite / PostgreSql / Oracle).
Open Api project from Source Code folder on Visual studio code.On appsettings.json file you will find five connection strings for five different database connectivity. Replace the connection string by your one. Also update OpenAI and Gemini ApiKey by your one.
"ConnectionStrings": {
"ApiConnStringMssql": "data source=Sangib-PC;initial catalog=VAssessdb;
persist security info=True;Integrated Security=SSPI;",
"ApiConnStringMysql": "server=localhost;port=3306;database=VAssessdb;user=root;",
"ApiConnStringOracle": "Data Source=(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orclpdb)));User Id=root;Password=root;",
"ApiConnStringSqlite": "Data Source=VAssessdb.db;",
"ApiConnStringPostgreSql": "Server=127.0.0.1;Port=5432;Database=VAssessdb;
User Id=postgres;Password=postgres;"
}
Then open Program.cs file, you will see five AppDbContextPool for five Connection Strings that already have on appsettings.json file. Un-Comment your required one and keep other four as commented.Have a look to the below code.I only un-comment the Mysql portion because i used Mysql DB here.
//Sql Server Connection String
/* services.AddDbContextPool<AppDbContext>(opt => opt.UseSqlServer
(Configuration.GetConnectionString("ApiConnStringMssql"))); */
//Mysql Connection String
services.AddDbContextPool<AppDbContext>(opt=>opt.UseMySql
(Configuration.GetConnectionString("ApiConnStringMysql")));
//Sqlite Connection String
/* services.AddDbContextPool<AppDbContext>(opt=>opt.UseSqlite
(Configuration.GetConnectionString("ApiConnStringSqlite"))); */
//PostgreSql Connection String
/* services.AddDbContextPool<AppDbContext>(opt=>opt.UseNpgsql
(Configuration.GetConnectionString("ApiConnStringPostgreSql"))); */
//Oracle Connection String
/* services.AddDbContextPool<AppDbContext>(opt=>opt.UseOracle
(Configuration.GetConnectionString("ApiConnStringOracle"))); */
Now Open terminal on VS Code and write below commands
->dotnet tool install --global dotnet-ef
->dotnet ef migrations add MigrationName
->dotnet ef database update
After successful build a folder named Migrations should create on project structure and a database named VAssessdb should create with seed data to your MySQL server (if you use MSSQL then you should check to Sql Server and so on for other databases). Now execute "dotnet run" if you want to run this Api project locally and you should see that your API listening at http://localhost:5004/.
Open Client Project from Source Code folder on Visual Studio Code and on vs code terminal execute "npm install" and "npm run serve".
After doing above settings your client project will be running at http://localhost:8080
Assuming that you run both api and client projects by following previous steps. Now you just need to open config.js (/VAssessClient/public/config.js) from Client project and set hostname as http://localhost:5004 because our api is running here and you need to link with api from client.
export default{
hostname:'http://localhost:5004'
}
You should use a vps(virtual private server) to host this product. Minimum requirements for vps are
Here is some resourses so that you can find more detail about above installations-
Assuming you are going to use https://visualassess.sangibproject.com as Site name for Client. Now on Program.cs file move to AddPolicy method and you can see https://visualassess.sangibproject.com set as origin and now publish by executing dotnet publish on terminal
Now open a new site on IIS with Site name, Physical path, IP address, Port and Host name. Copy the contents of publish folder to the physical path which you created. Now assuming that you set the Host name as visualassessapi.sangibproject.com, copy that name and store somewhere because we need that name just a bit later.
Open Client project . Here you will find a config.js file and set that name (visualassessapi.sangibproject.com) on hostname to config.js file.
export default{
hostname:'https://visualassessapi.sangibproject.com'
}
Now execute ( npm build ) on terminal and you need to copy the contents of dist folder to a physical path on server and open another site with Host name as visualassess.sangibproject.com.
Assuming you are going to use https://visualassess.sangibproject.com as Site name for Client. Now on Program.cs file move to AddPolicy method and you can see https://visualassess.sangibproject.com set as origin and now publish by executing dotnet publish on terminal
-> sudo mkdir /var/www/VAssess.Api
Now it's time to configure nginx, open a config file,
-> sudo nano /etc/nginx/sites-available/VAssessApi
Place the below contents and save that file.
server {
listen 80;
server_name visualassessapi.sangibproject.com;
location / {
proxy_pass http://localhost:5004;
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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
-> sudo ln -s /etc/nginx/sites-available/VAssessApi /etc/nginx/sites-enabled/VAssessApi
[Unit]
Description=Api for VAssess client App
[Service]
WorkingDirectory=/var/www/VAssess.Api
ExecStart=/usr/bin/dotnet /var/www/VAssess.Api/VAssessApi.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=VAssess.Api
User=ubuntu-user
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
Environment=ASPNETCORE_URLS=http://localhost:5004
[Install]
WantedBy=multi-user.target
Now, Open Client project and set that 'https://visualassessapi.sangibproject.com' on hostname to config.js file and execute ( npm build ) on terminal, you will get a dist folder
export default{
hostname:'https://visualassessapi.sangibproject.com'
}
Now you will need to create a directory named VAssess.Client on your Linux server. Execute below command on your linux terminal to create that directory then copy the contents of dist folder to this (/var/www/VAssess.Client) path.
-> sudo mkdir /var/www/VAssess.Client
Next, open a config file,
-> sudo nano /etc/nginx/sites-available/VAssessClient
Place the below contents and save that file.
server {
listen 80;
server_name visualassess.sangibproject.com;
charset utf-8;
root /var/www/VAssess.Client;
index index.html;
#Always serve index.html for any request
location / {
root /var/www/VAssess.Client;
try_files $uri /index.html;
}
error_log /var/log/nginx/vue-app-error.log;
access_log /var/log/nginx/vue-app-access.log;
}
-> sudo ln -s /etc/nginx/sites-available/VAssessClient /etc/nginx/sites-enabled/VAssessClient
For Super Admin, Username: superAdmin@visualassess.com Password: abcd1234
To find more detail you can browse this link (https://stripe.com/docs/testing)
Once again, thank you so much for purchasing this script. As I said at the beginning, I'd be glad to help you if you have any questions relating to this script. I'll do my best to assist. If you have a more general question relating to this script you may also comment directly on product comment section.
Sangib Kumar Saha