Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
courses:cs335:spring2019:graffiti:documentation [2019/05/15 18:44] – estradahammd | courses:cs335:spring2019:graffiti:documentation [2019/05/16 19:12] – [Loading Data into the Database Through EpiDocs] stalnakert | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Documentation ====== | ====== Documentation ====== | ||
- | Our full documentation can be found in our files and at [[https:// | + | Our full documentation can be found in our files and at this [[https:// |
==== Development Tips ==== | ==== Development Tips ==== | ||
Line 8: | Line 8: | ||
==== How the databases work ==== | ==== How the databases work ==== | ||
- | The databases are postgresql, to get easy access to them just ssh into fred and then navigate to whatever version of the database Sprenkle gave you access to. For a full list of databases go into [documentation/ | + | The databases are postgresql, to get easy access to them just ssh into fred and then navigate to whatever version of the database Sprenkle gave you access to. For a full list of databases go into [[https:// |
- | ==== Setup ==== | + | === Setup === |
- | The setup process is fairly simple, in the setup folder the populate database class runs and calls a set of functions that populate the databases either directly by pulling data from csv files or indirectly by pulling data from other databases. | + | The setup process is fairly simple, in the setup folder the populate database class runs and calls a set of functions that populate the databases either directly by pulling data from csv files or indirectly by pulling data from other databases. |
- | ==== Beans! | + | === Beans! === |
Beans are java objects that encapsulate data taken from the database. In this project, beans are used to provide quick, easy, and controlled access to data pulled from a database. They tend to not do a lot of processing and really are just used for access. | Beans are java objects that encapsulate data taken from the database. In this project, beans are used to provide quick, easy, and controlled access to data pulled from a database. They tend to not do a lot of processing and really are just used for access. | ||
- | ==== Rowmappers and DAOs ==== | + | === Rowmappers and DAOs === |
Beans are generated by rowmappers. Rowmappers take the results from postgresql queries and turn them into beans using the constructor interface specified. Different beans are generally used for different queries and provide different interfaces. Rowmappers don't have to return beans though and can in fact just be used to map specific datatypes. | Beans are generated by rowmappers. Rowmappers take the results from postgresql queries and turn them into beans using the constructor interface specified. Different beans are generally used for different queries and provide different interfaces. Rowmappers don't have to return beans though and can in fact just be used to map specific datatypes. | ||
Line 26: | Line 26: | ||
==== How the web pages work ==== | ==== How the web pages work ==== | ||
- | Web pages are all stored in the WEB-INF folder and are all jsp files. It is common to break up a page into a series of imports such that the page itself can basically be run in two lines. The imports contain all the structure of the page and allow for a consistent look. Check out [termIndex.jsp](https:// | + | Web pages are all stored in the WEB-INF folder and are all jsp files. It is common to break up a page into a series of imports such that the page itself can basically be run in two lines. The imports contain all the structure of the page and allow for a consistent look. Check out [[https:// |
- | ==== Accessing a jsp in WEB-INF | + | === Accessing a jsp in WEB-INF === |
Jsp sites are accessed through controllers. For each site that can be accessed their is an associated mapping in a controller that runs a function when the associated url is executed. These can be very short and just return the page or they can contain a lot of processing and data storage for the resulting web page. | Jsp sites are accessed through controllers. For each site that can be accessed their is an associated mapping in a controller that runs a function when the associated url is executed. These can be very short and just return the page or they can contain a lot of processing and data storage for the resulting web page. | ||
- | ==== Search | + | === Search === |
Search and pages that depend on special characters pass their values as arguments in the url rather than as elements of the url itself. This handles a whole host of errors and when used with UTF-8 encoding and the spring filter system protects against xss attacks. | Search and pages that depend on special characters pass their values as arguments in the url rather than as elements of the url itself. This handles a whole host of errors and when used with UTF-8 encoding and the spring filter system protects against xss attacks. | ||
Line 38: | Line 38: | ||
==== How the index page works ==== | ==== How the index page works ==== | ||
- | When a user tries to access the term index page an associated term index function in the graffiti controller pulls the list of unique terms and generates a list. This list is then sorted using the Greek sorting system to account for special characters and greek. For each item in this list the associated data for each term is called and passed to the jsp. The data needed is generated by the [Index Term DAO](https:// | + | When a user tries to access the term index page an associated term index function in the graffiti controller pulls the list of unique terms and generates a list. This list is then sorted using the Greek sorting system to account for special characters and greek. For each item in this list the associated data for each term is called and passed to the jsp. The data needed is generated by the [[https:// |
The term index list does not display terms that have been blacklisted by an admin and furthermore will eventually be sorted by data on the type of index when such data is added. This will require some sort of interaction with the epidocs. | The term index list does not display terms that have been blacklisted by an admin and furthermore will eventually be sorted by data on the type of index when such data is added. This will require some sort of interaction with the epidocs. | ||
- | The data all comes from the graffiti_index table. This table is generated by the [Insert Index Entries](https:// | + | The data all comes from the graffiti_index table. This table is generated by the [[https:// |
+ | |||
+ | ==== Map Display in the Search Results ==== | ||
+ | |||
+ | Prior to our work on this project, both the maps for Herculaneum and Pompeii would be displayed for all search results. | ||
+ | ==== Loading Data into the Database Through EpiDocs ==== | ||
+ | |||
+ | Loading the data representing the Smyrna graffiti is as easy as clicking a button. |