Quiz Plus

An ultimate solution for Quiz/Exam/Survey


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.

Quiz Plus is a web application / platform for Online Assessments, tests, surveys, quizzes and exams. It’s best suited for the corporate sector, admissions management, online evaluations and skills assessment for the educational institutions, companies, corporations and agencies.

 

"ConnectionStrings": {

    "ApiConnStringMssql": "data source=Sangib-PC;initial catalog=QuizPlusdb;
     persist security info=True;Integrated Security=SSPI;",

    "ApiConnStringMysql": "server=localhost;port=3306;database=QuizPlusdb;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=QuizPlusdb.db;",

    "ApiConnStringPostgreSql": "Server=127.0.0.1;Port=5432;Database=QuizPlusdb;
    User Id=postgres;Password=postgres;"

  }

 

public void ConfigureServices(IServiceCollection services)

        {
            //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"))); */ 

 

               ->dotnet tool install --global dotnet-ef

               ->dotnet ef migrations add MigrationName

               ->dotnet ef database update

Assuming that you run both api and client projects by following previous steps. Now you just need to open config.js (/QuizPlusclient/public/config.js) from Client project and set hostname as http://localhost:5002 because our api is running here and you need to link with api from client.

export default{
    hostname:'http://localhost:5002'
}

 

For Windows Server with IIS

 

For Linux Server with Nginx

Here is some resourses so that you can find more detail about above installations-

 

Windows Server

export default{
    hostname:'https://api.QuizPlus.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 QuizPlus.com. 

 

Linux(Ubuntu) Server

                 -> sudo mkdir /var/www/QuizPlus.Api

             Now it's time to configure nginx, open a config file,

                -> sudo nano /etc/nginx/sites-available/QuizPlusApi

             Place the below contents and save that file.

server {

    listen        80;
    server_name  api.QuizPlus.com;
    location / {
        proxy_pass         http://localhost:5002;
        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/QuizPlusApi  /etc/nginx/sites-enabled/QuizPlusApi

Let's create a service now to run your Api,
 
               -> sudo nano /etc/systemd/system/QuizPlus.Api.service
 
Place below contents and save that service
 
          [Unit]
          Description=Api for QuizPlus client App

          [Service]
          WorkingDirectory=/var/www/QuizPlus.Api/publish
          ExecStart=/usr/bin/dotnet /var/www/QuizPlus.Api/publish/QuizplusApi.dll
          Restart=always
          # Restart service after 10 seconds if the dotnet service crashes:
          RestartSec=10
          KillSignal=SIGINT
          SyslogIdentifier=QuizPlus.Api
          User=ubuntu-user
          Environment=ASPNETCORE_ENVIRONMENT=Production
          Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
          Environment=ASPNETCORE_URLS=http://localhost:5002

          [Install]
          WantedBy=multi-user.target
 
 
Notice, the User is set to 'ubuntu-user' , Chnaged that by your linux user which has full permission on the app directory.
 
  • Now, Open Client project and set that 'https://api.QuizPlus.com' on hostname to config.js file and execute ( npm build ) on terminal, you will get a dist folder

export default{
    hostname:'https://api.QuizPlus.com'
} 

Now you will need to create a directory named QuizPlus.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/QuizPlus.Client) path.

                 -> sudo mkdir /var/www/QuizPlus.Client

Next, open a config file,

                -> sudo nano /etc/nginx/sites-available/QuizPlusClient

Place the below contents and save that file.

server {
    listen      80;
    server_name QuizPlus.com;
    charset utf-8;
    root    /var/www/QuizPlus.Client/dist;
    index   index.html;
    #Always serve index.html for any request
    location / {
        root /var/www/QuizPlus.Client/dist;
        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/QuizPlusClient  /etc/nginx/sites-enabled/QuizPlusClient

  • Now it's time to import the database file to your Mysql database. You will find a database on DB folder.

 

Now let's end by executing below commands on linux terminal
              -> sudo apt-get install -y libgdiplus
              -> sudo systemctl enable QuizPlus.Api
              -> sudo service QuizPlus.Api start
              -> sudo service mysql restart
              -> sudo service nginx restart 
 
That's all for linux server.

For Admin, Username: admin@quizplus.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