CS 411W Lab II V2 Prototype Product Specification For ELDERS Prepared by: Robert Matson, Purple Group Date: 04/09/11 Matson 4/8/2013 Table of Contents 1 Introduction……………………………………………………………………………...3 Purpose………………………………………………………………………………….4 Definitions, Abbreviations and Acronyms……………………………………………..5 References………………………………………………………………………………6 2 General Description……………………………………………………………………..7 Overview………………………………………………………………………………..7 Prototype Architecture Description…………………………………………………….8 Prototype Functional Description………………………………………………………8 External Interfaces……………………………………………………………………...9 3 Specific Requirements…………………………………………………………………12 Functional Requirements……………………………………………………………...12 User-Interface Requirements………………………………………………………….15 Assumptions and Constraints…………………………………………………………18 Non-Functional Requirements………………………………………………………...18 List of Figures Figure 1. Prototype Architecture Diagram .......................Error! Bookmark not defined. Figure 2. Prototype Software Diagram. ............................................................................. 8 List of Tables Table 1. Effects of Assumptions on Requirements………………………………………18 ii LAB 2 – ELDERS PRODUCT SPECITICATION 3 Introduction There will be a great loss around the world in the next century. More than half the languages around the world will go extinct. With people speaking commonly used languages, people do not understand much about endangered languages. The endangerment of a language is similar to the endangerment of plants and species, but will result in the loss of the unique cultural, historical, and spiritual knowledge. The Cheroenhaka (Nottoway) Indian language happens to be one of the hundreds of languages that are listed as extinct. With the Endangered Languages Documentation Extension and Revival System project, known as ELDERS, there will be great hope in the revival of the Nottoway language. The Indian Tribe was known as Cheroenhaka, but upon contact with the English (Colonials), the English called them Nottoway. The Nottoway had made first contact with the English back in 1608. They lived and hunted by the Nottoway and Blackwater rivers in the southeastern part of Virginia which is now known as Sussex County and Capron. Even though the Nottoway language is not spoken today, the language is still an important part of their culture. The revival system will not only teach the Nottoway language, but it will expand the dictionary on new words voted by the tribe. The only documentation on some of the words was documented by Thomas Jefferson. There is very little known information about the language and no alphabet has been documented. The ELDERS project will consist of a free web-based system for anyone to use. 3 LAB 2 – ELDERS PRODUCT SPECITICATION 4 Purpose With the ELDERS (Endangered Language Documentation Extension and Revival System) project, there will be the revival of the Nottoway language. It will focus on storing and preserving the original language along with new words with an online database with a GUI frontend. With it being free and online, this will help expand the language. We want to keep a user’s attention, which is why the games (learning activities) will provide an effective fun learning capability. With the goal being able to create new words, this would be most effective when the user learns more about the language. Our methods are to encourage the use and expansion on the Nottoway language. This could also lead to other endangered languages revival. Only one step at a time needs to be taken and this is with the ELDERS project. There will much involvement with the Nottoway Indian tribe as the ELDERS project brings back the language culture for them. The voting committee will consist of the council members and the chief. They will be the ones to vote what words will be included into the Expanded Dictionary. (This space intentially left blank) 4 LAB 2 – ELDERS PRODUCT SPECITICATION 5 Definitions, Acronyms, and Abbreviations ELDERS: Endangered Languages Documentation Extension and Revival System Old Dictionary: Dictionary only containing the original Nottoway words New Dictionary: Dictionary containing all of the new words approved by the Nottoway LAMP: Linux, Apache, MySQL, PHP Registered User: A user that has registered with the ELDERS website and is either not a member of the community or a user whose Community Member status has not yet been approved. Community Member: A member of the community that the language belongs to Language Committee Member: Member of the community selected to be responsible for voting and suggesting new words Graphical User Interface (GUI): How the end user will interact with the application Linux: A free, widely-available open-source operating system 5 LAB 2 – ELDERS PRODUCT SPECITICATION 6 MySQL: the worlds most used RDBMS Structured Query Language (SQL): Language used to make queries to a database server Tables: Logical collections of data stored on a database server RDBMS: Relational Database Management System References http://www.nsf.gov/news/special_reports/linguistics/endangered.jsp "Research Areas." Language and Linguistics: Endangered Language. N.p., n.d. Web. 11 Mar. 2013. http://www.cheroenhaka-nottoway.org/nottoway-history/snap-shot.htm "Cheroenhaka Nottoway Indian Tribe History." Cheroenhaka Nottoway Indian Tribe History. N.p., n.d. Web. 11 Mar. 2013. http://www.cheroenhaka-nottoway.org/ "Cheroenhaka Nottoway Indian Tribe Official Site." Cheroenhaka Nottoway Indian Tribe Official Site. N.p., n.d. Web. 11 Mar. 2013. 6 LAB 2 – ELDERS PRODUCT SPECITICATION 7 General Description The ELDERS prototype is capable of expanding and teaching the Nottoway language. The prototype will display the language and its dictionaries, activities for learning the language, history of the tribe, and a forum. The forum is a way to keep in touch with the new word submissions and words that have been voted into the expanded dictionary by the voting committee. Overview The following section will describe the specific functional, hardware, software, and external interface architecture, assumption, constraints, and non-functional requirements of the ELDERS project. The key features of the prototype; the parameters that will be used to control, manage, or establish these features. (this space intentially left blank) Prototype Architecture Description 7 LAB 2 – ELDERS PRODUCT SPECITICATION 8 Figure 1. Prototype major functional component diagram. The interface will contain the LAMP stack. The prototype will feature a virtual machine that will have MySQL database and Apache server. This can be accessed by a remote desktop client. Python will be the written coded algorithm for the ELDERS project. There will be two different algorithms based on the dictionaries and search engine. With the voting of new words, the database will see if the word is already contained in the dictionary. The community and the council members will vote on which words will be used in the expanded dictionary. Prototype Functional Description The database will have at least two tables that contain historic dictionary and expanded dictionary. With the historic dictionary, it will store the words that are currently known in the Nottoway language. No administrator will be able to change or mess with the words in the historic dictionary. This is to keep the original documented Nottoway words preserved. Inside the expanded dictionary it will contain the words from the historic dictionary along with new 8 LAB 2 – ELDERS PRODUCT SPECITICATION 9 words that have been voted for by the voting committee. Users will be able to look how the old words are used and what they mean along with other Indian languages that are closely similar to the language. The council, a group from the Indian tribe, will vote on the new words that users will be creating. They have the final saying if the word should be added or not. If it is added, it goes within the expanded dictionary. The council will have administrator rights to be able to modify words from the list or if need be, remove words only in the expanded dictionary. The ELDERS project is not just about creating lost words for the language. It is about reviving and expanding the culture of the language. That is why there is an educational part for the project that consists of the language and history lessons of the Nottoway tribe. The game section focuses on having the user enjoy learning the Nottoway language, with a choice of different games. External Interfaces External interfaces will be limited to standard PC hardware and software. The only custom interfaces will be the ELDERS website. Hardware Interfaces The hardware will consist of a client/server application. The client will be able to access anything on the server with a computer or mobile device that has access through the network. The server will have a minimal projected specifications 2-4 GB RAM and 20 GB of storage. Authentication will control accountability and limit roles and/or views of certain users. Users 9 LAB 2 – ELDERS PRODUCT SPECITICATION 10 will be able to view the alphabet, old dictionary, new dictionary, historic background and communication methods. Software Interfaces This is a free access website with registered access. We want to use the LAMP (Linux, Apache HTTP server, MySQL, PHP) stack. Group members will interface with the MySQL databases using standard. PHP web pages will be developed using standard text editing tools. Figure 2. Prototype to software diagram User Interfaces There will be a main interface accessed by any Internet-connected computer with a web browser. In the future, it will be accessed by a mobile device. The interface is the ELDERS website. This site will permit new users to register and allow existing users to maintain their ELDERS accounts. 10 LAB 2 – ELDERS PRODUCT SPECITICATION 11 Figure 2. Site map of the ELDERS website These interfaces will provide a login screen as well as a user-specific home page which is presented after a successful authentication. (this space intentially left blank) 11 LAB 2 – ELDERS PRODUCT SPECITICATION 12 Specific Requirements The following section describes the specific functional, assumption, constraints, and non-functional requirements of the ELDERS project. Functional requirements The ELDERS prototype is capable of expanding and teaching the Nottoway language. The prototype will display the language and its dictionaries, activities for learning the language, history of the tribe, and a forum to keep in touch with the new word submissions and words that have been approved for the expanded dictionary. User Account Requirements The User Account Requirements are the functions, capabilities, and restrictions which must be included in the various user access levels. The following functional requirements must be met: 1. Must have a tiered user permission system 1. Must have new accounts put into a default tier 2. Must allow new users to request higher tier status 2. Must provide user access levels 1. Must allow for creation of access levels 2. Must allow the changing of the new user default access level 3. Must allow the changing of an account’s access level 12 LAB 2 – ELDERS PRODUCT SPECITICATION 13 4. Must allow editing of access levels 5. Must allow editing of require access level for: a. receiving notifications b. accessing the dictionary section c. adding words to the dictionary d. editing a word in the expanded dictionary e. viewing words that have been suggested f. voting on suggested words g. suggesting new words h. suggesting a new word i. editing suggested words j. accessing the games section k. adding a game to the game section l. accessing the grammar section m. accessing the forum n. changing forum permissions o. editing access level for accessing the history section p. editing access level for editing the history section q. editing access level for adding to the history section r. editing access level for accessing the website settings s. editing access level for changing an account's access level t. editing access level for setting the voting threshold 3. Must allow users to register for an account 13 LAB 2 – ELDERS PRODUCT SPECITICATION 14 1. Must allow user to choose username 2. Must alert user of existing username conflict 3. Must allow user to choose password a. Must be at least 8 characters long b. Must have a number c. Must have an uppercase character d. Must have a special character 4. Must prompt user for an email address 4. Must allow user to login 1. Must allow user to type username 2. Must allow user to type password 5. Must notify the user if login is incorrect 1. Must notify the user if the password is incorrect 2. Must notify the user if the username is incorrect 6. Must allow user to reset password 1. Must provide user with a temporary password 2. Must require user to change password 7. Must allow user to customize account 8. Must allow user to turn notifications on/off 14 LAB 2 – ELDERS PRODUCT SPECITICATION 15 User Interface Requirements The User Interface Requirements detail everything the website is capable of doing. The following functional requirements must be met: 1. Must provide a means to vote on suggested Nottoway words 1. Must restrict number of votes to one 2. Must allow for user to change vote a. Must be capable of adding the suggested word to the expanded dictionary 3. Must provide a threshold for votes on a word suggestion a. Suggested words that have reached the threshold must be marked as “approved” 4. Council must have a similar voting system for “approved” words 2. Must allow user to add words to the Expanded Dictionary 3. Must provide means to view the syllabary chart 4. Must be able to filter Nottoway words by letter 5. Must provide means to view the basic grammar rules of the Nottoway language 6. Must be able to search for Nottoway words in English 1. Must alert user if search fails a. Must suggest synonyms b. Must show suggested words 15 LAB 2 – ELDERS PRODUCT SPECITICATION 16 c. Must prompt to vote on words d. Must prompt to suggest word e. Must allow for editing suggested words f. Must prompt to suggest word if no suggested words exist 2. Must alert user of successful search a. Must display whether word is historic or expanded b. Must display word in Nottoway c. Must display Nottoway pronunciation d. Must display word in English e. Must display word’s part of speech f. Must be capable of displaying a sample sentence of the word g. Must be capable of displaying common phrases that include the word 7. Must be able to search for Nottoway words 1. Must alert user if search fails 2. Must alert user of successful search a. Must display whether word is historic or expanded b. Must display word in Nottoway c. Must display Nottoway pronunciation d. Must display word in English e. Must display word’s part of speech f. Must be capable of displaying a sample sentence of the word 16 LAB 2 – ELDERS PRODUCT SPECITICATION 17 g. Must be capable of displaying common phrases that include the word 8. Must provide a means to view the history of the Nottoway 9. Must provide a means to access onsite games 10. Must provide means to add a game 11. Must provide a means to suggest a word 1. Must require user input of a Nottoway word 2. Must allow user to submit new Nottoway word 12. Must provide a means to edit website settings and permissions 13. Must provide a forum 1. The forum must have the ability to create access controlled sub forums 2. The forum must be able to use the same accounts as the rest of the website (this space intentially left blank) 17 LAB 2 – ELDERS PRODUCT SPECITICATION 18 Assumptions and Constraints Table 1.Contains a complete list of assumptions on requirements. Condition All new words follow the old Type Effect on Requirements Assumption Capability of defining custom grammar rules grammar rules. Example sentences for new for new words is not included Assumption There will be no check on new entries to words are entered accurately ensure they are correct Table 1 Effects of Assumptions on Requirements. Non-Functional Requirements ELDERS must satisfy requirements not immediately known to the user. These will be responsible for covering the background or back-end processes of the project. The topics in this area include the database as well as security, maintainability, and reliability. 18 LAB 2 – ELDERS PRODUCT SPECITICATION 19 Database Requirements The database is a major component of the ELDERS project. It is responsible for storing the components of the Nottoway language. Also, it interacts with the front-end events, such as the GUI, and the associated algorithms. The following non-functional requirements must be met: 1. Must create a database called Nottoway 2. Must backup the database every day at midnight by running a cron job 3. Must have user accounts created to access the database 4. Must have database privileges limited depending on the user 5. Must contain a table named ALPHABET that stores the following information as fields a. LETTERS i.data_type: varchar(15) b. PRONUNCIATION i.data_type: varchar(50) 6. Must contain a table named HISTORICAL_DICTIONARY that stores the following information as fields 1. ENGLISH_WORD i.data_type: varchar(25) 2. NOTTOWAY_WORD i.data_type: varchar(50) 3. PRONUNCIATION i.data_type: varchar(50) 19 LAB 2 – ELDERS PRODUCT SPECITICATION 20 4. DEFINITIONS i.data_type: varchar(100) 5. PART OF SPEECH i.data_type: varchar(25) 7. Must contain a table named EXPANDED_DICTIONARY that stores the following information as fields 1. ENGLISH_WORD i. data_type: varchar(25) 2. NOTTOWAY_WORD i. data_type: varchar(50) 3. PRONUNCIATION i. data_type: varchar(50) 4. DEFINITIONS i. data_type: varchar(100) 5. PART OF SPEECH i. data_type: varchar(25) 8. TO DO: Must contain a table named NUM_VOTES which has a foreign key pointing to NOTTOWAY_WORD in the NEW_DICTIONARY table which stores the following information as fields 1. NOTTOWAY_WORD i. data_type: varchar(50) 2. VOTES i. int 20 LAB 2 – ELDERS PRODUCT SPECITICATION 21 Security ELDERS must provide adequate security for its consumers. This includes securely storing user data and providing permission checks to various features of the product. Therefore, the following non-functional requirements must be met: 1. Must store user passwords in database with encryption 2. Must have authorization checks on the following actions: 1. receiving notifications 2. accessing the dictionary section 3. adding words to the dictionary 4. editing a word in the expanded dictionary 5. viewing words that have been suggested 6. voting on suggested words 7. suggesting new words 8. suggesting a new word 9. editing suggested words 10. accessing the games section 11. adding a game to the game section 12. accessing the grammar section 13. accessing the forum 14. changing forum permissions 15. accessing the history section 21 LAB 2 – ELDERS PRODUCT SPECITICATION 22 16. editing the history section 17. adding to the history section 18. accessing the website settings 19. changing an account's access level 20. setting the voting threshold Maintainability The product should provide features that allow it to be fixed or changed at any time. These features will ensure the product can support continued development after being released. To ensure maintainability, the following non-functional requirements must be met: 1. Must check for software/package updates a. Must check compatibility of current code with new software versions in test environment before updating server Reliability ELDERS should be designed to provide a reliable service that will work through multiple circumstances. Therefore, the following non-functional requirements must be met: 1. Must be able to make backups regularly on hosting servers 2. Website must be viewable from mobile devices 3. Website must be functional for all major web browsers. 22