I need help with this project below.
Requirements are in the pdf file below.
Get Help With a similar task to - I need help with this project below.
1 | P a g e CIS 345 – Business Information Systems Development II Project: Mental Anguish Quiz Management System Final: See Course Website for Due Date Mental Anguish is commissioning a prototype of a quiz management system by a group of talented CIS programmers studying object-oriented design and GUI programming! At the start, they would like to start building a basic data repository of challenging questions and answers from any number of topics (popular culture, TV shows, movies, history, science, math, etc.). Having a prototype would give Mental Anguish the ability to see both possibilities and shortcomings of their planned system, refine their own requirements and expectations, and then go to a software consultant to develop the system. In their basic prototype, Mental Anguish would like a system, which allows the management of quiz questions, which includes the ability to add new questions, edit existing questions, and delete existing questions. The company wants to maintain a list of quiz Questions, refer to as their Question Pool, in an external data file. Each Question should have the question text, point value, four answer choices, and the correct answer stored. Since they want to keep it fun, each question should also store witty retorts given as Feedback text to the user along with the answer. Question Text: Mars will come to fear my ______ powers. Points: 2 Choice 1: Physics Choice 2: Chemistry Choice 3: Botany Choice 4: Potato-growing Correct Feedback: First botanist on Mars, indeed! Way to go Matt Damon! Incorrect Feedback: Admit it, you don’t know what Botany is. Correct Choice: 3 - Botany 2 | P a g e Mental Anguish would like the users of their prototype application to be able to manage a list of questions, with each question containing at a minimum the information listed above. However, they leave the technical implementation details to the developers. The application should have a Graphical User Interface (GUI), which allows the user to see a list of questions. A question editor should allow the users to add new questions, view existing question details, modify existing questions, and delete existing questions. The program should be able to save and load the list of questions to/from disk storage using files. The user should then be able to perform the standard operations of adding questions, modifying existing questions, and deleting existing questions. Mental Anguish has heard that Data Structures are a good way to store a series of logically related objects although they don’t know much about them and apparently there are many versions of Data Structures out there. The developers have considerable leeway in choosing options. In the end, all the functionality must work with whichever options you choose. For its question management purposes, Mental Anguish would like the following. A main window should present the user with options using a neat menu system like most popular applications. They do not want a bunch of buttons scattered all over the window. The menu should be organized logically and allow the user to perform all functionality that the application provides. They do want the ability for the users to be able to easily see all question details (seeing just question 1 would be useless without seeing all the details). For the quizzing mechanism, Mental Anguish would like a demonstration of a simple 1-person Quiz within the program with 3 questions chosen from the pool of questions. A menu option should allow the user to start a new Quiz, which should clear the application’s main window of everything except the quiz. After completing a Quiz, the user must be allowed to continue using any operation the application offers including taking another Quiz or Managing questions. Your program should not exit or end unless the user chooses to close the program. The Quiz window should show users the question text, the answer choices, and allow users to select or enter a single answer. The users should be able to see the number of questions 3 | P a g e asked/left (out of 3) and how many questions they have answered correctly. After answering a question, the user should be given the Correct or Incorrect feedback, points earned, and the number of questions answered currently / how many questions asked, should be updated. Each question will have a point value of 1, 2, or 3. While Message Boxes are okay for providing some feedback to users, Mental Anguish doesn’t want all feedback to be provided via message boxes since they are intrusive. Therefore, you must use Labels and Graphics for some of the feedback to the user! They were wondering if their development team could at least show the feedback a little more prominently and still have the application look good. Let’s face it – functionality is important, but nobody wants to use an ugly app! The application should look nice and professional. The team should experiment with Fonts, Sizes, and Colors. Since the program is supposed to be a fun entertainment application, if there was a nice looking-graphics, Mental Anguish would be very pleased. Mental Anguish would prefer if its application did not crash – ever. If the system goes down, it might take down other systems with it and Mental Anguish does not want its users to be left without entertainment! That would be a bad result for the development team. 4 | P a g e REQUIREMENTS 1) General Requirements • The project needs to be implemented as a Python GUI Application in PyCharm. • Use object-oriented design: have classes, methods and utilize instance properties and methods. • Utilize the Event Handling mechanism using custom and existing events, and use methods to transmit data (depending on direction of data transmission). o Data variables should not be made public/static to allow access to variables from other classes, but rather use properties. • Submit the project to Course Website as a zip file, named in the format: “Project_<yourASURite>.zip.” All students must submit the project individually. • Follow the CIS 345 Programming Conventions and CIS345 Commenting Guide documents for producing good, readable, and easily maintainable code. 2) Feature Requirements You have the freedom to visually structure your application according to your preference. All applications should allow users to: • View a list of Questions • Add new Questions o Ask for details of each Question. Each question has multiple answer choices that need to be created and the correct one should be marked appropriately within the Question along with the point value, and correct and incorrect feedback. • Edit existing Questions – must be able to modify all details of a question. • Delete a Question • Search all Questions’ text and display a list of all matching and partially matching Questions. • Implement data persistence: Users should be able to load a list of questions from a data file and save the questions to data file (Load/Save functionality). • Play a 1-person Quiz game that presents the user with 3 random but unique questions (no repeats) from the Question Pool. It should finally display the points earned out of total points. 5 | P a g e • Demonstrate use of graphics, e.g. when questions are answered correctly, incorrectly, or game ends. o Show an appropriate graphic suitable to the application • Provide the ability to cleanly exit the application. 3) Technical Requirements: • Use the Project Name: Mental Anguish • The project should have at minimum a Form to manage the Quiz Question Management application (list, add, edit, and delete questions), a class to model Questions, and transition the Canvas of the application to take the Quiz game. You are free to have more classes. The GUI application is only allowed to have 1 main window that transitions from Question Manager to Quiz game (back and forth between the two states). • The program should Load the Data File upon program start, which allows the user to view a list of questions. • All submissions need to provide a sample data file called “questions”. File extension can be .txt, .csv, or .json. The file should have at least 10 sample questions already loaded in it. • The class project is meant to be a demonstration of concepts learned in class. It is a technical requirement that the classes, widgets, APIs, graphics, data structures, and event-handling architecture covered in class be utilized for this project. o Concepts not covered in class should not be used for the project. o No credit will be given for code, which significantly departs from class concepts and utilizes data structures, APIs, tools, widgets, and techniques not covered in class. OPTIONAL ENHANCEMENTS AND CHALLENGES • Implement a two-player mode that asks the user how many questions they would like to answer. It should randomly select the specified number of questions from its pool of questions. It should prompt the user for an answer to the questions and announce who won at the end. There is no extra credit available for any extra features. 6 | P a g e DELIVERABLES 1. Final Version (100% of Project Grade) • Completed Question Class o Has Initializer o Instance variables for all attributes and properties for each attribute. • Main application window with menu system. o Setup with the List of Questions o Functioning Menu System to perform major operations (add, edit, delete, etc.) • File I/O o The load the List of Questions from data.dat file will be operational. o The close menu item and save the List of Questions to the data.dat file. • A sample file called questions should be included within the project folder. The file should have at least 10 sample questions in it. • Follow the CIS 345 Programming Conventions and CIS345 Commenting Guide documents for producing good, readable, and easily maintainable code. • Fully working project application with all features as detailed in this document. • A Readme.txt file, which documents how the application should be used. It should explain the steps users should take to load the question file, what buttons/menu items to click, the sequence of events, etc., which are needed to run the program properly. If you don’t document how to run the program, then points may be lost for unknown functionality. The submissions are expected on-time and on Course site. If there is no file submitted on time on Course site, or if your file cannot be opened or is corrupt in any way, it will receive a score of zero. Check your files three times before submission. If you do not check your files, be prepared to do that at the risk of receiving a zero. HINTS AND RECOMMENDATIONS • You can choose to implement the project with the look that you prefer. • You have a fair degree of flexibility in modeling your project design, implementing methods, etc. • Use GUI exercises and assignments as your template in getting started. 7 | P a g e • Use event handling when determining when to prompt the user with Quiz questions. When the user has answered a question, evaluate if it is correct or not, and then after that, ask another question. Keep count of how many questions you are asking and points earned and total points. o In this technique, the method call is happening over and over, using events. Suggested Sequence of Activities • Create your Question class as one of the very first things you do. • Once you have your Question class setup, create the main window to enter Question data. • After that, you can work at displaying the Question in the main window and maintaining your list of Questions. • Once you have successfully loaded questions in your List, then implement File I/O for saving and loading data. o You may want to have a method that hard codes sample questions into the list if you want to avoid typing the questions in manually. Once the data is part of your list and you have saved it to the file, you could comment out the method to load sample data. o This is useful to you in case you get your data file corrupted. If you have a method that loads sample data, you can generate your sample data file as many times as needed. • Implement the Game feature at the very end after all other functionality is working: it requires the implementation of logic, which will entail some level of trial and testing on your part. Nothing in the rest of the project depends on it – so, do not get hung up on this feature early. It is part of the second deliverable. o Within implementing the Quiz game, do not – at first – try to implement randomization or ensuring unique question. At first, just select 3 questions to display (which may be duplicate). After you are done creating the structure of the gaming mechanism and your game works, then you can think about randomizing the questions. o Again, while you are randomizing questions, do not worry about having unique questions. That again, should only be dealt with after you are done implementing randomization. • Your goal should be to do iterative development such that you are always adding more features to a program that is running. Each iteration of your project works but each successive iteration has something new that is added to it. • Look at your code again after it is working and take out all redundant and duplicate code – create reusable classes and methods. 8 | P a g e • Finally, clean up variable and method names, comment code properly and make the code look clean and readable! GETTING HELP Skill levels vary and while some people may get done much quicker, you should expect to spend 10-30 hours on this project. If you start early, you can get help early. You are welcome to come to me for help in approaching the project, design issues, solving problems, implementing specific portions, or debugging code. I am here to help you in all aspects of implementing the project! You only need to make sure that you start early enough so that you can get help. Help does need to be provided in person. Very little help can be provided over e-mail since it needs to be done interactively. You should also go to the Tutor for help. The tutor also helps CIS 340 students, so if you wait till the end, getting assistance will be very tough due to capacity constraints. Do NOT wait till the end of semester to get started. Do not struggle alone! Get started early, get stuck early, and get help early! 9 | P a g e Grading Criteria for Project Final The following tables represents a general rubric covering the major areas of evaluation, which are foreseen. All submissions will be evaluated according to these criteria PLUS any additional issues, which arise in the submission. If an error or issue of concern is uncovered in the process of grading a submission, it WILL be factored into the score regardless of whether it is listed below or not. Therefore, you can use the tables below as a guide but not as a set-in-stone list of evaluation items. Program Requirement / Criteria (Final) Points Question Class 9 Project has a Question class Question class has an Initializer There are instance variables for all required data in a Question Instance variables use name mangling Public properties give access to private instance variables File I/O 6 Program saves data structure of Questions to data storage Program loads data structure of Questions from data storage Main Window 9 An event handler is implemented for the Question Added event Event handler extracts Question object Question object is added properly to a Data Structure and widget for display Main Window allows users to manage questions (add, edit, delete, search, etc.) Window allows question text, 4 choices, feedbacks, points, and answer to be entered Add functionality creates a Question and sends it through Event handling Creates an event and passes Questions as argument to be stored in a data structure Menu System 6 A full menu system is created Manage Questions, Search, Start Game is accessible using menu options Edit Question 10 Allows users to edit questions Allows access to view/edit question Form allows question text, 4 choices, points, feedbacks and correct answer to be entered Search Question 10 User can search for questions Search functionality looks through question, choices, and feedback text All matching and partially matching questions are listed 10 | P a g e Program Requirement / Criteria (Final) (Contd…) Points Quiz Game 7 Main window transitions to Quiz Game mode, which allows the user to play a game Quiz Game displays question and choices, feedbacks based on answer Displays running totals for earned and total points before and after each question Game Play 15 Only one answer choice can be selected or entered 1-player game presents user with 3 questions (no repeats) Incorrect Answers are indicated User is shown how many questions have been asked/left and points earned/ point total User is shown question feedback prominently in a neat, pleasant form Game stops after 3 questions have been presented and answered After Quiz allow another quiz to be started or transition back to Question Manager mode Question Randomization 5 Questions are randomized Questions are unique Programming Quality 5 Program architecture is elegant and concise Program does not have arcane and busy implementation Code is easily to interpret instead of being long and hard to understand Object-Oriented Principles are followed Program does not crash unexpectedly Application Presentation and Look & Feel 5 Application has a pleasant and clean look Application does not have buttons scattered all over the form Application uses graphics during the operation of the application Application uses image media in an appropriate fashion Style and Standards 10 Variable data types are appropriate Variable names are descriptive Complex pieces of code or formulas are commented File names, project names are correct Variable names are in camel case Method names are in Pascal Case Readme.txt File 3 A Readme.txt file describes in detail the program features and how to use the program. It should describe how to open data files, save data files, run the game, and the sequence of all events, so that a user is able to properly use the program. Total 100
Tutlance Experts offer help in a wide range of topics. Here are some of our top services:
- Math homework help
- Nursing homework help
- Statistics homework help
- Nursing coursework help
- Capstone project writing services
- Essay writers for hire
- Case study writing help
- Buy college papers online
- Buy college research papers
- College homework help
- Professional resume writing services
- Programming homework help
- Coursework writing help
- Term paper writing help
- Biology homework help
- Do my physics homework
- Dissertation data analysis help
- PhD Dissertation writing services
- Chemistry homework help
Post your project now for free and watch professional experts outbid each other in just a few minutes.