Question: Project: Glossary Objectives Familiarity with designing and coding a realistic component-based application program without being provided a skeleton solution. Note that in your solution you
Project: Glossary
Objectives
Familiarity with designing and coding a realistic component-based application program without being provided a skeleton solution.
Note that in your solution you can only use components from the components package and components from the standard Java libraries that have been used before in lectures/labs/projects (e.g., String). You should not use other components from any other libraries that have not been used in CSE 2221.
The Problem
Your customer, Cy Burnett, heads a major publisher of textbooks who is migrating toward on-line access. Cy wants a relatively easy-to-maintain glossary facility. (A glossary is a list of difficult or specialized words, orterms, with their definitions, that is usually near the end of a book.) His initial requirements are as follows:
The output shall be a group of HTML files. There shall be a top-level index which merely lists each term in the glossary, and separate pages for each of the terms with their definitions. Clicking on a term in the index shall take you to the page for that term and its associated definition. Moreover, clicking on any term in the glossary that happens to appear in a definition shall take you to the page for that term and its associated definition.
Every term shall consist of a single "word" (i.e., a term contains no whitespace characters).
The terms shall appear in the glossary index in alphabetical order. In each term's page, that term shall appear in red boldface italics just before its definition.
The entire glossary shall be generated in batch fashion by your program from an input file. This input shall consist of a single term on the first line, its definition on the next one or more lines (terminated by an empty line), another term on the next line, its definition on the next one or more lines (terminated by an empty line), etc. The input shall continue in this fashion through the definition of the last term, which shall end with its terminating empty line. The program shall not check for invalid input; the customer shall be responsible for providing input that meets the stated conditions.
The program shall ask the user for the name of the input file and for the name of a folder where all the output files will be saved. The output folder must already exist and will not be created by the program. The top-level index shall be named index.html and the page for each term shall be named term.html where term is the actual term.
These are the stated requirements for your program. If you have questions of clarification or need additional details, Cy is willing to answer them if you ask your instructor to contact him.
Setup
You're on your own! There are no other setup instructions; this is the "blank sheet of paper" project that you've all been waiting for!
Method
When you are satisfied that your program works, select your Eclipse project (not just some of the files, but the whole project), create a zip archive of it, and submit the zip archive to the Carmen dropbox for this project, as described in Submitting a Project.
Your grade will depend not merely on whether the final program meets the customer's initial requirements, of course, but also on the general software quality factors we've been discussing for the past three months: understandability, precision, appropriate use of existing software components, maintainability, adherence to coding standards, and so forth.
A sample input file is available at:
terms.txt(http://web.cse.ohio-state.edu/software/2221/web-sw1/assignments/projects/glossary/data/terms.txt)
A sample of the corresponding program output is available at:
index.html(http://web.cse.ohio-state.edu/software/2221/web-sw1/assignments/projects/glossary/data/index.html)
You should not assume that your glossary must look like this one, which is merely a sample of what the output might be. This sample is just something your requirements analyst and the customer cobbled together by hand for a small glossary, to serve as possible prototype for the final program output. You should feel free to improve on it.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
