YTM Quiz Marketplace
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 the market for this is huge Worldwide. Currently there are no vendors that provide this service. There are many ways to produce, distribute, sell and take quizzes. 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.
2.2.2 Alternative to Problem Books
There are many books with collections of problems to be solved in order to practice and learn certain math subjects. With YouTestMe Marketplace they would use software to write collection of math problems and then they would use YTM platform to distribute and sell those collections.
There are many advantages of this approach, just to list several:
- Quick time to market
- Easy access to Worldwide market
- Low cost of sales and distribution
- Easy and quick corrections and updates
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 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” – user goes straight to search screen (application), there is no separate web site about ebay.com, however there are links at the bottom of the screen that lead to various information related to company and business (see picture below):
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. State 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. Pool can be created by: a. Entering questions and answers through YTM application 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 user is owner the following functionality is available:
1. Edit
2. Copy to new quiz
3. Delete
4. Unpublish quiz
If 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 preloaded into 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 totally separate application from YTM Corporate Version.
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
a. Provide clear and simple instructions for the users
b. Improve 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 role "professor" should be able to upload quizzes
2. Once user chooses excel file to upload, he/she will press "Upload" button
3. System will upload file and immediately execute quiz load functionality
4. System should immediately display success or error message to the user.
5. Error message should be displayed on the screen and should have detailed and sufficient information for the user in order to fix the problem with the file and try again.
6. Quiz 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 YTM database should be stored in directory “./success” and files that are not loaded should be stored in directory “./error”.
c. Reference to the uploaded file should be stored in "USER ACTION LOG" so file and log should be easily linked together.
9. Table "USER ACTION LOG" could be expanded with new field for store all necessary information in most efficient way.
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.
11. Username and Password is not required in the spreadsheet in order to upload quiz since user is already logged to the system when uploading 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 user can easily verify it.
Excel File Layout Specifics
For the detailed example please see 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).