FIL Project Management App v1 was the runner-up prototype for the Spring 2014 COEN275/COEN160 in-class design competition held by the Frugal Innovation Lab at Santa Clara University. The application allows coordinators and volunteers from the lab to search, store, and retrieve FIL project information to/from a SQL database in an easy to use and accessible GUI platform. FIL Project Management App v1 is a desktop application written in Java using the Swing API which utilizes the following libraries: JDK 1.8 is used as the default Java library. EclipseLink JPA2.1 is used to import the JPA library used for managing the calls to the SQL database. MySQL-Connector 5.1.31 is utilized to access the SQL database within the Java application.
- BannerPanel.java
- FrugalView.java
- FrugalController.java
This is the welcome screen of the program which features the Frugal Innovation Lab logo and the main menu buttons. The user can select search to begin a search using a title. They can select filter to search using filtered criteria. They can also select manage to login to the administration account. The main program is held together by the FrugalView and FrugalController. FrugalView contains the main frame and has access to all of the panels that will be displayed in the main panel. FrugalController controls which panel will be displayed using a cardlayout on the main panel. Furthermore, each panel that is displayed will have its own set of view, controller, and model classes. These will be explained in the pages below.
- SearchPanel.java
This page searches the database for a project by title.
- ResultPanel.java
This is the panel which serves as a container for the search result and search stat page. The search results and search stats page are loaded into this panel using the FrugalController. Each of those pages has its own controller, model, and service class.
- SearchResultPanel.java
This page shows the search results for the projects which are found in a jTable. It uses jTextfields to display the specific details of the project. The media files of the project can be accessed using the view button. It will move to the media results page. The other data button works in a similar manner. It takes the user to the page where additional information regarding the project can be viewed.
- MediaViewPanel.java
This page displays the media files that are related to the selected project. There is a jTable which allow the media files to be selected. The jTextFields show the details of the media file. The view button will open the media file using the native application from the operating system. The done button returns the user back to the search results page.
- OtherDataViewPanel.java
This page displays extra data fields and values that the project may contain. It has a jTable which may display the various data fields and values that a project may contain. The done button returns the user back to the search results page.
- StatPanel.java
This page displays the search statistics returned by the application. Start date will return the earliest project found and end date will return the latest found. Each statistic jTextArea should return the counts of the matched criteria. Status for example should return the count for each Active, Completed, Suspended, and Abandoned projects.
- FilterPanel.java
The filter panel allows the user to filter search criteria using status, start date, end date, category, tags, students, partners, advisors, and media type. Multiple selections can be main cross criteria to return the most relevant projects.
- LoginPanel.java
The login page allows a user to enter their username and password to login to the administrative account which allows users and projects to be managed.
- ManagePanel.java
The manage page interacts with the FrugalController to launch the user or project management pages.
- UserManagerPanel.java
The user manager page allows administrative accounts to be added, updated, or deleted from the database. It has a jTable which displays the users who exists in the database. The textfields displays the selected admin’s user id, user name, and password.
- Project.java
- ProjectPanel.java
- ProjectTableController.java
- ProjectTableModel.java
- ProjectService.java
The project management page allows new projects to be created, and existing projects to be updated or deleted. It uses a jTable to display the existing projects from the database. Each textfield displays the data of a selected project. A new project will have a unique project ID automatically generated. The title, status, starting date, outcome, and category is required for a new project to be added. Once a project is added, it can be updated with students, partners, advisors, tags, media, and other data. Clicking on the manage button for students, partners, advisors, media, or other data will take the user to the management screen for each specific field. If the user selects add a new category in the category or tag list, they will be taken to the management screen for those fields.
- Students.java
- StudentsPanel.java
- StudentsTableController.java
- StudentsTableModel.java
- StudentsService.java
The student management page allows the user to see the existing students who are related to the selected project. New students can be added. Existing students can be updated or deleted by selecting the appropriate choice from the table. Each student name must be unique for the current project.
- Partners.java
- PartnersPanel.java
- PartnersTableController.java
- PartnersTableModel.java
- PartnersService.java
The partner management page allows the user to see the existing partners who are related to the selected project. New partners can be added. Existing partners can be updated or deleted by selecting the relevant choice from the table. Each partner name must be unique for the current project.
- Advisors.java
- AdvisorsPanel.java
- AdvisorsTableController.java
- AdvisorsTableModel.java
- AdvisorsService.java
The advisor management page allows the user to see the existing advisors who are related to the selected project. New advisor can be added. Existing advisor can be updated or deleted by selecting the appropriate choice from the table. Each advisor name must be unique for the current project.
- Category.java
- CategoryPanel.java
- CategoryTableController.java
- CategoryTableModel.java
- CategoryService.java
The category page allows the users to add new categories to the application. Existing categories can be edited or deleted by selecting them from the table. The changes will be visible when the user clicks done to return to the project management page.
- Tag.java
- TagPanel.java
- TagTableController.java
- TagTableModel.java
- TagService.java
The tag page allows the users to add new tags to the application. By selecting existing tags from the table, it can be updated or deleted from the database. The changes will be visible when the user clicks done to return to the project management page.
- Media.java
- MediaPanel.java
- MediaTableController.java
- MediaTableModel.java
- MediaService.java
The media page allows the user to see the media files that are related to the selected project. Media can be added, updated, or deleted for the current project from this page. A user can select a file type and specify the file name and file location to add a new media. The view button allows the user to launch the media directly using the native application installed on their OS. The table shows the existing media files.
- FileType.java
- FileTypePanel.java
- FileTypeTableController.java
- FileTypeTableModel.java
- FileTypeService.java
The file type page allows the user to add additional file types that can be selected on the media page. The table shows the existing media types. These can selected and its file type can be updated or deleted by the user.
- OtherData.java
- OtherDataPanel.java
- OtherDataTableController.java
- OtherDataTableModel.java
- OtherDataService.java
The other data page allows the user to create additional data types and fields that were not preprogrammed. New entries can be created by entering the type and value. Existing entries can be updated or deleted by selecting the appropriate item from the table.
A search could be performed by typing in the title or a keyword of the title in the main search window.
All hits on the keywords entered will be displayed as a result in the table.
In addition, results can be restricted to the project elements that are selected on the filter page.
The ability to store and retrieve project information has been fully implemented. The user can store project data such as the collaborating students, faculty, and participants. The user is able to add, update, or delete projects and related information using an interactive table in the project management screen. Additional categories, tags, media, and file types can be added to the projects. Users can also use the other data field to add special data to the project. The search function allows the user to search for projects using the project’s title. The user can filter results using the filter function to narrow the results of the retrieved projects. The project statistic page allow the user to analyze the state of the projects in the Frugal Innovation Lab. The user account page was not fully implemented. Users can currently add, update, or delete users. However, users are able gain admin access without supplying proper credentials.
- Download and open the project with an IDE such as Netbeans or Eclipse.
- Resolve missings jars using the 3 provided files in the "library" folder.
- Create the SQL tables using the provided script "SQL_CREATE_TABLES".
- Populate the SQL tables using the provided scripts in the "sql_data" folder.
- JavaTM Platform, Standard Edition 8 API Specification
- Java Package javax.swing
- EclipseLink Java Persistence API (JPA)
- Java MySQL Connector
This software was developed by Hinsen Chan and Vinay Suri at Santa Clara University in Spring 2014.