Assess Hour

A Solution for online assessment (SaaS)


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.

Assess Hour is a single page(SPA) web application / platform for online Assessments, tests, surveys, quizzes and exams. It's best suited for the online evaluations and skills assessment for the educational institutions, companies, corporations and agencies. You can start your own SaaS businees with Assess Hour, also your customers can earn money by selling their own assessments.

 

For Windows Server with IIS & Mysql

 

For Linux Server with Nginx & Mysql

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

 

Windows Server

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

Now you need to copy the contents of Client project to a physical path on server and open another site with Host name as assesshour.com. 

 

Linux(Ubuntu) Server

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

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

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

               -> sudo ln -s /etc/nginx/sites-available/assessHourApi  /etc/nginx/sites-enabled/assessHourApi

             Place the below contents and save that file.

server {

    listen        80;
    server_name  api.assesshour.com;
    location / {
        proxy_pass         http://localhost:5003;
        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;
  }
}
 
Let's create a service now to run your Api,
 
               -> sudo nano /etc/systemd/system/AssessHour.Api.service
 
Place below contents and save that service
 
          [Unit]
          Description=Api for AssessHour client App

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

          [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 from Project folder and set that 'https://api.assesshour.com' on hostname to config.js file.

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

Now you will need to create a directory named AssessHour.Client on your Linux server. Execute below command on your linux terminal to create that directory then copy the contents of Client directory to this (/var/www/AssessHour.Client) path.

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

Next, open a config file,

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

                -> sudo ln -s /etc/nginx/sites-available/assessHourClient  /etc/nginx/sites-enabled/assessHourClient

Place the below contents and save that file.

server {
    listen      80;
    server_name assesshour.com;
    charset utf-8;
    root    /var/www/AssessHour.Client/dist;
    index   index.html;
    #Always serve index.html for any request
    location / {
        root /var/www/AssessHour.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;
}
 
  • Now it's time to import the database file to your Mysql database. You will find a database on DB folder.That's all for windows server.

 

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

For Super Admin, Username:superAdmin@assessHour.com  Password:abcd1234

To find more detail you can browse this link (https://stripe.com/docs/testing)

This project currently configured with Mysql DB but you have more database options. You can use Sql Server, Postgresql, Oracle and Sqlite. If you want to use one of them, let me know i will help you for that with free of cost.

Super Admin user has below menus

we will discuss briefly each of the menus.

 

 

Dashboard

 In Super Admin Dashboard, application status will show by different charts & data. Charts are based on different data like

 

 

Menus

 Here you find a list of all menus of this App. To add a new menu you have to fill below fields

 

Roles

You will find three roles (Super Admin,Admin & Student) here. These roles are restricted to modify and delete because these are used for many configuration issues.

Anyway you can assign menus for a role from actions.

 

 

Users

You will find all admin users here with there transaction detail, plan, plan interval, payment mode & others. Also you can manage offline transactions from here. You can add new users from here with transaction details.

 

 

FAQ

All faqs are here. You can add new faq from here also can modify exting faqs. Those faqs will viewed by other roles users.

 

 

Contacts

All requests and queries which input come from landing page will be viewed here.

 

 

Payments

All transactions of admins are here. You can see all possible data which are generated by customers when they purchase any of your subscription plan.

 

Plans

You can see all subscription plans from here, can modify, delete & add new one from here by filling below fields

 

App Settings

 Total app settings including site logo, site favicon, site title, welcome message, copyright text, allow welcome email, allow FAQ, Exam Settings, Payment Settings, Email Settings & Color controls.

  1.     General Settings ( site logo, site favicon, site title, welcome message, copyright text, allow welcome      email, allow  FAQ, App version etc.)
  2.     Exam Settings ( Browser refresh end the exam , site logo on exam page)
  3.     Payment Settings ( you need to put your Stripe secret key here to take online payments)
  4.     Email Settings  

               ->For Gmail Port: 587 , Host: smtp.gmail.com

               ->For Yahoo Port: 587 , Host: smtp.mail.yahoo.com

               ->For Outlook Port: 587 , Host: smtp-mail.outlook.com

         5.   Color Settings ( Color controls for Menu Bar , Header, Footer & Body)

 

Keep in mind, if you change app version number then a pop up (like below image) will appear on dashboad which will instruct you to refresh. Change the app version only when you do some code label change on Client project.

Admin user has below menus

we will go through all of those.

 

 

Dashboard

 In Admin Dashboard, below charts are available

Also in dashboard you will see a message dialog box(see below image) if your existing subscription plan is expired and you can renew your plan by using that.

 

Users

As an admin you can add and manage your candidates from here.

 

Category

All your question category will apear here and you can add & manage new categories from here.

 

Assessments

 It is the starting point of a new Assessment. You can create a new Assessment by filling below fields,

 

Questions

 List of assessments in box shape with some other fields will be viewed here and you can add question by filling below fields

  1.     Question ( No duplicate is accepted for a particular quiz)
  2.     Code Snippet ( Check this only if you want set pre-formatted questions like Programming language code or anything you want keep source format)
  3.     Question Type ( MCQ & Descriptive)
  4.     Complexity Lavel (Easy, Medium & Hard)
  5.     Question Category(select one category from your existing category list)
  6.     Question Video (Only youtube embed video is allowed) (Optional)
  7.     Question Image (Optional)
  8.     Option-A
  9.     Option-B
  10.     Option-C (Optional)
  11.     Option-D (Optional)
  12.     Option-E (Optional)
  13.     Correct Answer
  14.     Answer Explanation (Optional)

(8-13) applicable for MCQ questions only.

 

Certificate Templates

 Design templates from here and allow those to recognize your candidates

 Avaiable fields

There is a list (Student Name, Mobile, Address, Title etc.) on top of all fields. You can drag them and drop on any of the text fields as per your need. 

 

Examine & Reports

All your candidates exam records will find here and examine options will visible for descriptive questions assessments. You can filter those and can download those on PDF,CSV & Excel. Also here you find a Sent Email button, use that if you want to sent email to your selected candidates.

 

Payments

Here you can see all payments data of your paid assessments. Also you need to set your Stripe  secret key to accept payments for paid assessment by clicking Payment Settings button on top right corner.

 

Dashboard

On candidate dashboard, you can see all your available assessments and can start by clicking the start button.

 

Reports

Here as a candidate you will find your all attempted assessments results in detail.

 

Analytics

Some data analysis here based on your login, exam attempt, data usage and others.

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