Difference between revisions of "YTM Quiz Marketplace"
(8 intermediate revisions by the same user not shown) | |||
Line 52: | Line 52: | ||
== Web Site == | == Web Site == | ||
− | A domain “quizmarketplace.com” is registered and it will point directly to the “Log In/Register” screen of the Quiz Marketplace application. Quiz Marketplace will not have separate static web site – all marketing related screens will be accessible from the “quizmarketplace.com” log-in screen. <br> | + | A domain “quizmarketplace.com” is registered and it will point directly to the “Log In/Register” screen of the Quiz Marketplace application. Quiz Marketplace will not have a separate static web site – all marketing related screens will be accessible from the “quizmarketplace.com” log-in screen. <br> |
− | As a model we will use | + | As a model we will use “Ebay.com” – the user goes straight to search screen (application), there is no separate web site, however there are links at the bottom of the screen that lead to various information related to company and business. |
− | |||
== Design and coding considerations == | == Design and coding considerations == | ||
Line 94: | Line 93: | ||
1. User can create and sell pool of questions that can be used by buyer to import them in existing YouTestMe software installation <br> | 1. User can create and sell pool of questions that can be used by buyer to import them in existing YouTestMe software installation <br> | ||
2. A pool can be created by: <br> | 2. A pool can be created by: <br> | ||
− | a. Entering questions and answers through the YTM applications - Starter and | + | a. Entering questions and answers through the YTM applications - Starter and Classroom2020 <br> |
b. Importing from Excel files <br> | b. Importing from Excel files <br> | ||
c. Importing from existing quizzes <br> | c. Importing from existing quizzes <br> | ||
Line 154: | Line 153: | ||
== Initial Application Data == | == Initial Application Data == | ||
− | 1. Admin user is set at the application set up. | + | 1. Admin user is set at the application set up. <br> |
− | 2. All codes and reference data are | + | 2. All codes and reference data are previously loaded into the database at the application set up. <br> |
− | |||
− | |||
== Quiz Upload Feature == | == Quiz Upload Feature == | ||
=== Business Case === | === Business Case === | ||
Line 181: | Line 178: | ||
== Coding Requirements == | == Coding Requirements == | ||
− | 1. Quiz Marketplace will be | + | 1. Quiz Marketplace will be completely separated from YouTestMe Classroom2020 and YouTestMe Starter. <br> |
2. Start by copying code and the database from YTM Corporate and strip extra code and tables. <br> | 2. Start by copying code and the database from YTM Corporate and strip extra code and tables. <br> | ||
3. Code will be in the new SVN repositories \youtestme_sws\ and \youtestmedoc_sws\ <br> | 3. Code will be in the new SVN repositories \youtestme_sws\ and \youtestmedoc_sws\ <br> | ||
Line 187: | Line 184: | ||
5. Reuse existing Java Quiz loader to build new functionality where registered YTM user would be able to create their own Quizzes using MS Excel and upload them to YTM system. <br> | 5. Reuse existing Java Quiz loader to build new functionality where registered YTM user would be able to create their own Quizzes using MS Excel and upload them to YTM system. <br> | ||
6. Make process easy and efficient for the users <br> | 6. Make process easy and efficient for the users <br> | ||
− | + | * Provide clear and simple instructions for the users <br> | |
− | + | * Improve the process where you see the opportunities <br> | |
== Layout == | == Layout == | ||
Line 203: | Line 200: | ||
== Functionality == | == Functionality == | ||
− | 1. Every registered user with role "professor" should be able to upload quizzes <br> | + | 1. Every registered user with the role "professor" should be able to upload quizzes. <br> |
− | 2. Once user chooses excel file to upload, | + | 2. Once a user chooses excel file to upload, they should press the "Upload" button. <br> |
− | 3. | + | 3. The system will upload the file and immediately execute quiz load functionality. <br> |
− | 4. | + | 4. The system should immediately display a success or error message to the user. <br> |
− | 5. | + | 5. An error message should be displayed on the screen and should possess detailed and sufficient information for the user in order to fix the problem with the file and try again. <br> |
− | 6. | + | 6. Quizzes should not be partially loaded. There should not be “garbage” and incomplete data loaded. <br> |
− | 7. System should register every attempt by every user to upload the quiz and its outcome. This information should be stored in table "USER ACTION LOG" <br> | + | 7. System should register every attempt by every user to upload the quiz and its outcome. This information should be stored in table "USER ACTION LOG". <br> |
8. Every uploaded file: <br> <br> | 8. Every uploaded file: <br> <br> | ||
− | a. Should be stored on designated location on the disk with the unique name in this format: “originalfilename_username_yyyymmddhhmiss.xls” <br> | + | a. Should be stored on designated location on the disk with the unique name in this format: '''“originalfilename_username_yyyymmddhhmiss.xls”''' <br> |
− | b. Excel files that are successfully loaded in YTM database should be stored in | + | b. Excel files that are successfully loaded in the YTM database should be stored in the '''“./success”''' directory and files that are not loaded should be stored in the '''“./error”''' directory. <br> |
− | c. Reference to the uploaded file should be stored in "USER ACTION LOG" so file and log should be easily linked together. <br> | + | c. Reference to the uploaded file should be stored in the "USER ACTION LOG" so that the file and log should be easily linked together. <br> <br> |
− | 9. Table "USER ACTION LOG" could be expanded with new field | + | 9. Table "USER ACTION LOG" could be expanded with a new field to store all of the necessary information in the most efficient way. <br> |
− | 10. Quiz Name should be unique. If the quiz with the same name is uploaded twice then system should append unique number “YYYYMMDD-HHMISS” to the quiz name and inform user about that change. <br> | + | 10. Quiz Name should be unique. If the quiz with the same name is uploaded twice then system should append a unique number “YYYYMMDD-HHMISS” to the quiz name and inform the user about that change. <br> |
− | 11. Username and Password | + | 11. Username and Password are not required in the spreadsheet in order to upload a quiz since the user is already logged into the system when uploading the Quiz. <br> |
− | 12. All uploaded quizzes should be available to any registered user right away. A link to the newly uploaded quiz and all relevant information should be provided on the screen as soon as load is completed so user can easily verify it. | + | 12. All uploaded quizzes should be available to any registered user right away. A link to the newly uploaded quiz and all relevant information should be provided on the screen as soon as load is completed so the user can easily verify it. |
== Excel File Layout Specifics == | == Excel File Layout Specifics == | ||
− | For the detailed example please see file: | + | For the detailed example please see this file: '''\youtestme\batch_source\test_data\excel\Quiz\Quizzes\GeographyQuiz.xls''' <br> |
− | \youtestme\batch_source\test_data\excel\Quiz\Quizzes\GeographyQuiz.xls <br> | + | |
== Worksheet “Quiz” == | == Worksheet “Quiz” == | ||
Latest revision as of 19:35, 13 June 2017
Introduction
Quiz Marketplace is one of the upcoming YouTestMe projects whose main purpose is to assemble various types of quizzes and exams on one platform, easily accessible to everybody in the world. The idea behind this principle is to enable the users to exchange the quizzes between them for a price they choose, with a set percentage (hasn't been defined yet) going to YouTestMe for providing the service. Malloc Inc. will provide a platform which will facilitate creation, distribution and sales of these items. Concept is similar to Apple iTunes and the way it distributes and sells music and software. There will be many ways and many user profiles who will create, distribute and consume quizzes. Most obvious scenarios are teachers, professors and instructors creating quizzes that will be used in practice exams and teaching of particular subjects.
Business Case
It is estimated that there is a huge demand for this worldwide since, currently, there are no vendors that provide this service. There are many ways to produce, distribute, sell and take quizzes. The most popular are paper based and computer based quizzes.
Paper based - Require printing and physical distribution. (very expensive)
Computer based - Quizzes are widely used virtually by anybody for various purposes such as:
- To be tested or certified
- To practice and prepare for upcoming test
- To learn new subjects
- For fun and entertainment
Use Case Scenarios
Practice Exams
Globalization of education and learning. Professors and instructors from around the world could create or collaborate in creation a comprehensive pool of questions/answers and use YTM to distribute them around the World. Students and candidates would be able to purchase and practice exams available on YTM platform.
Alternative to Workbooks
There are many books with collections of problems to be solved in order to practice and learn certain subjects. With YouTestMe Marketplace they would use software to write collections of math problems and then they would use the YTM products to distribute and sell those collections.
There are many advantages of this approach, just to list several:
- Quickly maintained
- Easily accessible worldwide
- Low sales and distribution cost
- Quick and easy to correct and update
Quiz Marketplace Components
- Question Pool Creator
- Quiz Creator
- Quiz Publisher
- Quiz Purchasing Module
- Accounting Reconciliation
Ideas
Free accounts and commission
The main goal should be the large number of users. So everyone will be in possibility to create a free YouTestMe account. With the YouTestMe account, a user can enter the Quiz Marketplace and then share their quizzes and pools for free (or a limited number for free), and put prices on their collection.
We would earn money by taking some commission (for example 30%) of the price when other users are buying content from user who put it on sale.
Improvements in design
1. Start using table SYSTEM_PARAMETERS to keep system level information and settings.
2. Start using table USER_PREFERENCES to keep user system preferences.
Quiz Marketplace Application Requirements
Web Site
A domain “quizmarketplace.com” is registered and it will point directly to the “Log In/Register” screen of the Quiz Marketplace application. Quiz Marketplace will not have a separate static web site – all marketing related screens will be accessible from the “quizmarketplace.com” log-in screen.
As a model we will use “Ebay.com” – the user goes straight to search screen (application), there is no separate web site, however there are links at the bottom of the screen that lead to various information related to company and business.
Design and coding considerations
1. Quiz Marketplace will be built as a separate application by reusing existing code from YTM Corporate. 2. Application behavior will be controlled by properties files 3. Security model should be built as described in the document “YTM Security Model.docx”
User Registration
1. Anybody can register and create user profile 2. One person can register multiple times with different email address and user id 3. Email address is mandatory and it used to identify person 4. Same email cannot be used in more than one profile (registration) 5. Email is verified during registration 6. There will be "public" information in user profiles so the potential buyers can see credentials of the person who created quiz: 7. Full Name 8. Picture 9. Education 10. Achievements 11. Short Biography 12. Link to list of all quizzes created by this user id
Creating Quizzes
1. Any registered user will be able to create and publish quizzes
2. Quiz will be invisible to public until is "published"
3. User can create any number of quizzes of any complexity
4. When quiz is created owner will choose quiz category and some keywords that will be used to easily find the quiz
5. Properties of the quiz should be editable at any time: title, keywords, questions and answers.
6. Quiz could be "deleted" or "unpublished". Deleted quizzes could not be retrieved by users ever again. Unpublished quizzes could be published again.
7. Quiz could be copied to a new quiz with identical properties.
8. Two quizzes with identical properties can coexist. It will be up to the user to manage uniqueness and appearance of his/her quizzes.
9. Owner can flag certain questions as "public" meaning that they can be displayed to potential buyer before the purchase in order to give additional information about the quiz.
10. Quiz will have a price specified in US$. Price of “0” US$ implies that quiz is free.
Creating Pools
1. User can create and sell pool of questions that can be used by buyer to import them in existing YouTestMe software installation
2. A pool can be created by:
a. Entering questions and answers through the YTM applications - Starter and Classroom2020
b. Importing from Excel files
c. Importing from existing quizzes
Quiz Properties
1. Owner id
2. Date created
3. Date edited
4. Title
5. Description
6. Keywords (used for searching)
7. Category (classification - categories are predetermined - user cannot create new category/classification)
8. Number of questions
9. Number of purchases
Buying and Executing Quizzes and Pools of Questions
1. Quiz could be purchased to be executed unlimited number of times on YTM platform by user who purchased it
2. Quiz execution will never expire and results are preserved forever
3. Quiz could be executed unlimited number of times and each execution will count as one quiz taken meaning that results are preserved for each execution.
4. User can stop and continue executing quiz later (no time limit)
5. User can delete quiz execution and associated results (logical delete in the database)
6. All published quizzes are available to any registered user for purchase
7. User can purchase quiz or pool of questions which can be then imported in its own installation of YTM
Searching for Quizzes
1. User will have a screen where all his/her purchased quizzes are listed for easy access.
2. Search functionality is required to be able to search quiz by title, description, classification, date range or by keyword.
3. Once quiz is found:
If the user is owns the quiz the following functionality is available:
1. Edit
2. Copy to new quiz
3. Delete
4. Unpublish quiz
If the user is not an owner the following functionality is available:
1. Look at the properties of the quiz
2. Purchase the quiz
3. Browse questions that owner flagged as "public"
4. Look at the quiz owner public information
Method of payment
1. PayPal only in the first release. PayPal API and service is publicly available.
https://developer.paypal.com/docs/api/
Quiz Categories
1. Only application administrators can create Quiz Categorization Tree.
2. This tree should be loaded in the initial setup of the application.
3. After initial application setup, a screen should be provided to manage categories.
4. Categories that already have quizzes should never change (location or title).
Initial Application Data
1. Admin user is set at the application set up.
2. All codes and reference data are previously loaded into the database at the application set up.
Quiz Upload Feature
Business Case
The following functionality is needed in order to enable a wide variety of users to create and upload quizzes. It is practical that individuals can create quizzes offline and while not connected to YTM application.
Creating a quiz in the spreadsheet can actually be easier than in YTM application because of:
- Instant responsiveness of Excel
- Viewing, Editing, Sorting and other useful features of Excel
- Data could be imported from various file formats into Excel
- User can keep and edit its own Quiz files in Excel
With this functionality YTM can have a wide range of users creating various quizzes for initial load into the system. Those users could do it while offline and the only software needed would be MS Excel.
Newly created quizzes should be:
- Written in English
- Widely used, popular areas such as history, literature, philosophy, mathematics, physics, chemistry, astronomy, etc.
- Useful and practical for learning the aforementioned subjects so they attract users
A super user could be designated to manage resources that create quizzes including data upload (If that approach proves to be practical). It is highly desirable to hire a person who is going to manage quiz creation in this new fashion (manage students, categories, quizzes and does or manages Quality Assurance and new ideas).
Coding Requirements
1. Quiz Marketplace will be completely separated from YouTestMe Classroom2020 and YouTestMe Starter.
2. Start by copying code and the database from YTM Corporate and strip extra code and tables.
3. Code will be in the new SVN repositories \youtestme_sws\ and \youtestmedoc_sws\
4. Try reusing all code and development procedures (build, deployment, etc.).
5. Reuse existing Java Quiz loader to build new functionality where registered YTM user would be able to create their own Quizzes using MS Excel and upload them to YTM system.
6. Make process easy and efficient for the users
- Provide clear and simple instructions for the users
- Improve the process where you see the opportunities
Layout
1. New icon "Upload Quiz" should be places on "Quizzes" screen
2. New screen "Upload Quiz" should be built as a part of existing YTM application
3. On this new screen there should be:
- A field to enter local file name
- "Browse" button to be able to browse files on local file system
- "Upload" button
- A link to download an Excel template to create for creating a quiz
- A link to instructions how to create and upload quiz
Functionality
1. Every registered user with the role "professor" should be able to upload quizzes.
2. Once a user chooses excel file to upload, they should press the "Upload" button.
3. The system will upload the file and immediately execute quiz load functionality.
4. The system should immediately display a success or error message to the user.
5. An error message should be displayed on the screen and should possess detailed and sufficient information for the user in order to fix the problem with the file and try again.
6. Quizzes should not be partially loaded. There should not be “garbage” and incomplete data loaded.
7. System should register every attempt by every user to upload the quiz and its outcome. This information should be stored in table "USER ACTION LOG".
8. Every uploaded file:
a. Should be stored on designated location on the disk with the unique name in this format: “originalfilename_username_yyyymmddhhmiss.xls”
b. Excel files that are successfully loaded in the YTM database should be stored in the “./success” directory and files that are not loaded should be stored in the “./error” directory.
c. Reference to the uploaded file should be stored in the "USER ACTION LOG" so that the file and log should be easily linked together.
9. Table "USER ACTION LOG" could be expanded with a new field to store all of the necessary information in the most efficient way.
10. Quiz Name should be unique. If the quiz with the same name is uploaded twice then system should append a unique number “YYYYMMDD-HHMISS” to the quiz name and inform the user about that change.
11. Username and Password are not required in the spreadsheet in order to upload a quiz since the user is already logged into the system when uploading the Quiz.
12. All uploaded quizzes should be available to any registered user right away. A link to the newly uploaded quiz and all relevant information should be provided on the screen as soon as load is completed so the user can easily verify it.
Excel File Layout Specifics
For the detailed example please see this file: \youtestme\batch_source\test_data\excel\Quiz\Quizzes\GeographyQuiz.xls
Worksheet “Quiz”
Username: Zkukoljac
Password:
Quiz Name: North American Geography
Comment: Quiz for kids between ages 9-11
Category Id: 123
Note that username and password are optional on this Worksheet while new functionality is required related to “Category Id”:
“Category Id” is an internal category id (QUIZ_CATEGORY.QUIZ_CATEGORY_ID) as assigned by YTM system where quiz should be loaded. This id will be used during the load process to assign uploaded quiz to the proper category. If category is missing or mismatched then upload should happen in generic category created specifically for that purpose (Category Id=0).
A new filed “Category Id” should be added on Category “General Information” screen (see picture below) so users could find this number and enter it in the spreadsheet being uploaded:
Java Quiz Loader program will be changed to get “Category Id” and store it in the proper location in the database.
Known Issues and Limitations
1. Currently only Excel 2003 and older formats are supported
2. There should be no empty columns and lines at the end of the spreadsheet
3. Only multiple choice and true-false questions are supported at the moment
4. Current load process should be altered in order to run concurrently (two or more quiz loads at the same time). See paragraph “Design Considerations” for more details.
Existing Code and Samples
Java program to load quizzes from Excel files and several Excel files samples of the Quizzes are already exist and they are used during test data load:
Java program to load quizzes: \youtestme\batch_source\src\com\youtestme\loaders\excel\testdata\tableloaders\QuizLoader.java
Sample call in the program:
QuizLoader quizLoader = new QuizLoader();
quizLoader.load();
Sample Quizzes: \youtestme\batch_source\test_data\excel\Quiz\Quizzes\
Quiz Upload Design Considerations
Current load program loads data in staging table first and assumes that there is only one load going on at the time. Additional Field has to be added to staging table to identify the “LOAD_ID” so data from two or more concurrent data loads will not be mixed up.
Data from staging table should not be deleted immediately after data load process is completed. Retaining data for some time will be useful for troubleshooting. Data purging from staging table should be scheduled process (i.e. once a week).