The name has yet to be fully fleshed out.
Note
This project is intended to be used as a college project, as such do not expect much maintenance past December 2024. Recommended to place the jar file within a folder, since it will create files upon usage and you don't want any of your existing files to be overwritten. The creation layout was temporarily adjusted and will need to be adjusted later.
CPSC 4900 Group Project - Involves using a GUI that has GUI object elements within that are to be used to, in some way, generate and adjust a webpage or site. The primary usage is adjusting.
Java 17+
A user-friendly GUI that generates HTML/PHP pages with an identical style, but the contents of the page can be modified via the GUI. The GUI assists in the organization and potentially navigation of the pages. The prioritization is the adjusting of contents en masse of the files.
Course Task List
- Submit Formation of Project Teams
- Submit Github Repository
- Read Github README Formatting should you want to work on the README, makes it easier to understand what does what.
- Submit Project Vision for the Course Project
- Submit Project Team Roles
- Submit Product Backlog
- Submit Plan of Sprint 1
- Submit Personas, Scenarios, and User Stories
- Submit Sprint 1 Report and Deliverables
- Presentation
- Submit Plan of Sprint 2
- Submit Software Architecture
- Submit Sprint 2 Report and Deliverables
- Presentation
- Submit Plan of Sprint 3
- Submit Sprint 3 Report and Deliverables
- Final Presentation
- Demo/Video
The product vision being used for the group project.
FOR individuals looking to set up uniform website pages, website developers, or hobbyists WHO wish to spend more time on the contents within the page rather than the code behind the page. Small businesses can also benefit from the product considering they may have limited resources, teams, or budget. The target set of customers are information website managers that are looking to reduce the labor cost and ensure the developers or hobbyists will have more time to work on other tasks. The TEK-GUI is an open-source application software which focuses vertically on website development THAT facilitates the creation and overall management of webpages whilst ensuring that the contents are abstracted into a more understandable format. This abstraction allows customers, with no technical background, to create a well-designed product without heavy expenses or frustrations. It implements a user-friendly graphical user interface, GUI, that will allow users to generate HTML/PHP pages with a consistent style. UNLIKE Fandom, whose web page editing user interface, whether old or new, forces the user to have an overall sluggish experience, the focus of TEK-GUI is to speed up the process and make it more enjoyable visually. Not only can TEK-GUI speed up the process, it can also allow for multiple pages to be adjusted in quick succession, whereas Fandom requires the editor to publish and navigate to another page before editing. OUR PRODUCT filters out the complex information and allows for the customer to navigate through the information at a faster pace when searching for an unknown item through the contents of the page. Reducing the time cost of creating and maintaining the code will greatly improve customer performance and overall experience.
| Username | Role |
|---|---|
MaraDoze |
Product Owner |
Zysteriya |
Development Team |
SomeoneSomebody |
Development Team |
nwinn-student |
Scrummaster |
coby0815 |
Development Team |
The dates and summary of the meetings that occurred or are planned.
| Date | Meeting Type | Focus |
|---|---|---|
| Sept. 5, 2024 | Planning | Product Vision understanding and outline |
| Sept. 6, 2024 | Rapid Progress | Complete the Product Vision |
| Sept. 9, 2024 | Planning/Preparing | Work on meeting schedule and product backlog and Project Team Roles. |
| Sept. 12, 2024 (FIRST FULL) | Backlog Refinement and Consolidation | Ensure consensus on Product backlog, finish Project Team Roles, and plan next meeting. |
| Sept. 16, 2024 | Sprint Planning | Schedule meetings for Sprint 1, have members choose their task, and plan next meeting. |
| Sept. 19, 2024 | Sprint Check-in | Check in w/ team and generally plan personas and plan next meeting. |
| Sept. 23, 2024 | Sprint Check-in | Check-in w/ team and plan next meeting. |
| Sept. 27, 2024 | Preparing | Work on personas and scenarios and plan next meeting. |
| Sept. 30, 2024 | Refinement | Work on scenario and user stories and plan next meeting. |
| Oct. 3, 2024 | Preparing | Go over Sprint Report and Deliverables and Presentation and plan next meeting. |
| Oct. 7, 2024 | Preparing | Prepare for Presentation |
| Oct. 9, 2024 | Emergency Meeting | Review code, report, and presentation. |
| Oct. 10, 2024 | Sprint Planning | Schedule meetings for Sprint 1, have members choose their task, and plan next meeting. |
| Oct. 17, 2024 | Planning | Clarify tasks and prepare for Software Architecture and plan next meeting. |
| Oct. 21, 2024 | Sprint Check-in | Check-in w/ team and try to flesh out Software Architecture and plan next meeting. |
| Oct. 24, 2024 | Preparing | Complete Software Architecture and prepare for Sprint Report and Deliverables. |
| Oct. 28, 2024 | Preparing | Flesh out Sprint Report and Deliverables. |
| Oct. 31, 2024 | Preparing | Review Sprint Report and Deliverables and presentation. |
| Nov. 4, 2024 | Preparing | Review for presentation and choose tasks for Sprint 3 Plan. |
| Nov. 7, 2024 | Sprint Planning | Assign tasks and complete sprint plan. |
| Nov. 11, 2024 | Sprint Check-in | Clarify tasks and prepare sprint report. |
| Nov. 14, 2024 | Preparing | Flesh out sprint report and work on presentation. |
| Nov. 18, 2024 | Final Lap | Finish both presentation and report and start final presentation. |
| Nov. 25, 2024 | Demo Day | Meeting to perform the demo during. |
Current Features.
| Title | Code State |
|---|---|
Frame UI Creation and Functionality |
Accepted |
Object UI Base Structure |
Accepted |
Open and Save Feature |
Accepted |
Parse HTML from File Contents |
Accepted |
Singular Object Selection |
Accepted |
UI Menu and Tools Feature |
Accepted |
Object Creation and Deletion |
Accepted |
Read Contents of Objects from Inputs |
Accepted |
Edit View to See the Contents of Object |
Integrated |
Common Application Menu and Tools Features |
Accepted |
Object Control Shortcut System |
Integrated |
Object Content Adjusting |
Integrated |
Generate HTML from Objects |
Integrated |
Single Object Moving Feature |
Accepted |
Undo and Redo Actions on Objects |
Accepted |
Remember Recently Used Files |
Accepted |
Object Highlighting |
Accepted |
Remembrance of Frame Location |
Reviewed |
Populating Popup Menu with Common Features |
Accepted |
Mass Object Selection |
Accepted |
Object Relationship System |
Integrated |
Object Connections Visualized |
Integrated |
Mass Object Moving Feature |
Integrated |
Frame UI Accessibility |
Integrated |
Planned Features
There are always going to be features that weren't planned that will be implemented and vice verca.
| Title | Description | Estimated Cost | Difficulty Rating |
|---|---|---|---|
| Sprint 1 | |||
Frame UI Creation and Functionality |
Creates a Java GUI frame that can be closed, iconified, scaled, moved, and added to. Should the user press the X button on the top right it shall either exit the application or prompt for the user to save. | 3 hours, 1 person | 5 |
Object UI Base Structure |
An Object UI consists of a name, creation time, position, and size and the ability to obtain them. | 3 hours, 1 person | 2 |
Open and Save Feature |
The ability for the GUI to read and write to files that are selected by the user. | 3 hours, 1 person | 2 |
Parse HTML from File Contents |
HTML parsing consists of the input byte stream from the file contents, processing to remove escape characters, then cleaned of comments and altered to make it understandable for objects, like removing in-line styling and JavaScript. | 15 hours, 3 people | 16 |
Singular Object Selection |
The ability to select a single Object that actions can be performed on. The selection could be via a mouse interaction or a keyboard shortcut or a way to navigate the Objects in order to select. | 3 hours, 1 person | 3 |
UI Menu and Tools Feature |
The existence of a UI menu bar and toolbar feature that can easily be adjusted to accommodate new menu items and tools. | 3 hours, 1 person | 5 |
Object Creation and Deletion |
UI Objects, rectangles, can visually be removed and added to the Frame UI by reading in inputs, whether directories, files, keyboard key presses, or mouse interactions. | 3 hours, 2 people | 4 |
Read Contents of Objects from Inputs |
An Object contents, that is what an object holds possession of, can be obtained from files input. The contents of an Object includes its properties, such as the title of the document, headings, and more, as they are stored within the Object structure. | 4 hours, 2 people | 3 |
Edit View to See the Contents of Object |
A new Frame UI or otherwise UI element that can be used to distinguish the one holding the Objects from the one holding the Object contents and properties. The Edit View displays all of the contents within the Object, including the base structure and relationships. | 5 hours, 2 people | 9 |
Object Content Adjusting |
Content within the Object can be readily adjusted by the user, such as the ability to disable titles, headers, and other variants that the content may hold, or hide them from view. The ability to alter the Object contents themselves is also presented within this feature. | 6 hours, 2 people | 7 |
| Sprint 2 | |||
Generate HTML from Objects |
Contents of the Object should be read then used to create the HTML file, altering the contents of an existing should that be necessary. The reverse of parsing. | 12 hours, 3 people | 17 |
Single Object Moving Feature |
The ability for an Object to be moved around the Frame UI by mouse dragging or selection and keyboard presses. In the case of selection, arrow keys or WASD can be used to navigate the Frame, which shall be considered within the scope of moving. | 4 hours, 2 people | 4 |
Common Application Menu and Tools Feature |
Common features supported, like Zooming, Fullscreen, Exiting, New file creation, alongside the control shortcut features, save, open, and export features. The creation and deletion should also be facilitated via the menu alongside editing. Other menu items can be added later as the group thinks of them. Like a tutorial or settings. | 20 hours, 4 people | 11 |
Object Control Shortcut System |
Objects can be copied, duplicated, cut, pasted, found and replaced, all selected. The feature extends into the Object’s content. | 8 hours, 3 people | 10 |
Undo and Redo Actions on Objects |
Actions such as resizing, moving, editing the relationship, and otherwise altering the contents of the Object will be able to be undone/redone. The feature extends into the Object’s content. | 14 hours, 2 people | 14 |
Remember Recently Used Files |
Saves the recently used files, alongside the position of the previously closed one so that the user can be where they left off whenever reopening the application, in a text file. | 7 hours, 2 people | 7 |
Object Highlighting |
The ability to indicate that an Object will be selected should the user click on it, via hovering, or be selected should the user press enter. A way to distinguish which item is being focused. | 4 hours, 1 person | 4 |
Remembrance of Frame Location |
Saves the frame location and size percentages in a text file to be read from upon opening up the application. | 5 hours, 1 person | 6 |
Populating Popup Menu with Common Features |
Utilizes the sections of the Menu and Tool feature, but only includes sections that are most commonly used, like some control shortcuts and editing. | 6 hours, 2 people | 8 |
Mass Object Selection |
The ability to select a range of UI Objects using a mouse drag selector that creates a box and anything within the box shall be selected. Another approach would be to create a means to select multiple using a series of keyboard presses, similar to Single Object Selection. | 5 hours, 1 person | 7 |
Object Relationship System |
UI Objects can be related to one another, creating a hierarchical structure of objects, thus adding a parent Object and list of child Objects stored within each Object. Both or all related Objects should know when they are in the relationship and when it has ended. The parent may be a directory instead of a file, but it will still be considered an Object, just void of contents aside from the name and relationship. | 5 hours, 2 people | 5 |
Object Connections Visualized |
Object connections are visualized based on new UI elements that directly connect two or more Object UIs together in order to show a relationship. The connections should follow the Object UI even if it has been moved. | 6 hours, 2 people | 11 |
Mass Object Moving Feature |
The ability for a multitude of UI Objects to be manipulated across the screen though the usage of mouse drags on any of the Objects or keyboard presses, much like the Singular Object Moving Feature described. | 5 hours, 2 people | 13 |
Object Content Creation and Deletion |
Allows for content to be created and deleted from the Object and displayed on the Edit View immediately. | 6 hours, 2 people | 10 |
Object Content Collapsing in Edit View |
A collection or single piece of content, whether it be a paragraph or an entire table, can be collapsed to reduce the scroll time | 4 hours, 3 people | 12 |
Object Content Ordering in Edit View |
Content within the Object can be reordered, translating to a reordered output as well when converting from Object to HTML. | 6 hours, 2 people | 11 |
Frame UI Accessibility |
The components within the Frame UI can be adjusted to be more accessibility friendly, including the customization of colors for those colorblind, and Tooltip text for those visually impaired. Can be considered the Settings of the Frame UI, as it facilitates customization. | 8 hours, 2 people | 9 |
Remember Settings |
Saves the settings in text file to be read from upon opening the application again. | 4 hours, 2 people | 5 |
Visualize Input HTML |
The ability for the Frame UI to have another framelike UI element that can display a preview of the website version of the HTML, in-line CSS supported. | 5 hours, 2 people | 5 |
Support for Multiple Screen Sizes |
Screen size adjustments throughout the process of utilizing the application do not impact the size of position of the Frame UI. | 9 hours, 2 people | 7 |
Object Visuals Based on Presets or Settings |
Object coloring, connection scheme, selected color, highlighted color, and more properties of the Object visuals can be adjusted to the user’s will based on presets, or themes, or settings. | 7 hours, 2 people | 5 |
| Source | Inspired | Explanation |
|---|---|---|
L. Cornelius Dol |
ControlArea |
ControlArea utilizes his TextAreaOutputStream class to customize the output experience for the developers. |