Skip to content

Latest commit

 

History

History
49 lines (34 loc) · 3.38 KB

F17_lab03.md

File metadata and controls

49 lines (34 loc) · 3.38 KB

Aditya N. Ekta S.

a. Scrapes GE's or engineering classes in a specific department or area, and shows the course description. b. As a student I can choose to look up course descriptions of Engineering courses so that I'm more informed about them. As a student I can filter general education courses by subject area and department, so that I know which course fulfills my general education requirements.

c. The software runs. Through a series of pop up windows the user filters their search for courses, and receives a scraped list of courses, and can see their descriptions. d. As a student I can modify my searches after doing one, so that I can search multiple times without running the program again. As a student I can see which quarter certain courses were offered, so that I can better predict when the course will be offered in the future. As a student I can see enrollment statistics, so that I can understand how full the class will probably be. As a student I can search for courses and see the results in the same GUI window, so that I can work the program faster.

e. The readme is not bad currently, but a few things could be improved. There could be a better description of what's being done, so that people don't have to run it to understand how it works. There could be a better description of how the scraping is being done, so people don't have to go into the code as much to build features on existing code.

f. The build.xml looks good. All targets have descriptions.

g. There are enough issues, that we could get 1000 points. Each issue seems to have a pretty detailed description.

h. We have not added any issues

i. The code seems to be organized well, but its not the easiest to read through. Many of the functions have proper descriptions to make a javadoc, while many don't. Only two of the classes have any comments within the actual code to explain what each part does. The purpose of the classes is explained for all, except one. Based on the names, we sort of know how the classes relate to one another, but it is not the most clear.

Important information:

  • AreaUrlMappingTable.java: Creates a hash tables for GE and Engineering departments. The getUrl methods take in a string for area and return a .aspx URL for scraping the deparment inputted.
  • CourseScraper.java: Takes in user input for GE or Engineering, followed by department and subject area if GE was selected erlier, then retrieves courses for that department and invokes the GUI with a list of the filtered courses.
  • GetDescription.java: Uses jsoup to retrieve and parse HTML from a URL, found using AreaUrlMappingTable. Returns description as a string.
  • GetEngInfo.java and GetGeInfo.java: Sets up the URL based on department, queries the URL using jsoup, and parses the returned HTML into an ArrayList of courses which is returned.
  • GetEngInfoGUI.java and GetGeInfoGUI.java: Displays all courses and allows user to select course and get it's description using GetDescription.java. Built with swing.

j. There is a file for testing (CourseScraperTest.java), but no JUnit tests. Ideally, there would be JUnit tests for each function in all files that are not for GUIs. The most important tests would probably be for getting courses and getting course descriptions, as the entire project is dependent on those.