Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
1806120
set up 1
GuoYuHeJason Nov 4, 2024
987d83e
Entities completed
GuoYuHeJason Nov 5, 2024
a2cc47e
Update .gitignore
GuoYuHeJason Nov 5, 2024
c5aba0d
set up 2
GuoYuHeJason Nov 5, 2024
18de28f
set up 3 and Demo
GuoYuHeJason Nov 5, 2024
a10afd8
Complete use case interface, basic view
Mikawu73 Nov 9, 2024
291838c
joke view
alexandersunliang Nov 10, 2024
9734d1d
joke view
alexandersunliang Nov 10, 2024
4201f4b
joke view
alexandersunliang Nov 10, 2024
31698ae
Update README.md
cheryllin2154 Nov 10, 2024
eefbb79
Merge pull request #2 from GuoYuHeJason/Mika
K1bbu7z Nov 10, 2024
9214ace
Merge pull request #4 from GuoYuHeJason/Cheryl
GuoYuHeJason Nov 10, 2024
6618741
Merge pull request #3 from GuoYuHeJason/alexander.sun
K1bbu7z Nov 10, 2024
39ce625
Merge pull request #1 from GuoYuHeJason/guoyu
GuoYuHeJason Nov 10, 2024
5d93c9d
joke view name update
alexandersunliang Nov 10, 2024
6dcdd8d
joke ui update
alexandersunliang Nov 10, 2024
35bc7ce
Merge pull request #5 from GuoYuHeJason/alexander.sun
GuoYuHeJason Nov 10, 2024
8b304b6
FavouriteView first update
K1bbu7z Nov 10, 2024
a4ce096
Merge pull request #6 from GuoYuHeJason/xuesi
GuoYuHeJason Nov 12, 2024
d3f6ce6
Merge remote-tracking branch 'origin/main' into alexander.sun2
alexandersunliang Nov 12, 2024
5484947
Add files via upload
cheryllin2154 Nov 12, 2024
f8224cc
readme updated
cheryllin2154 Nov 12, 2024
924b297
Add UserFactory and Create Favourite use_case folder
K1bbu7z Nov 12, 2024
950ae9b
set up 3 and Demo
GuoYuHeJason Nov 12, 2024
a3146e7
Structure
GuoYuHeJason Nov 12, 2024
edaf940
DemoSearchView complete
Mikawu73 Nov 12, 2024
fe3a872
Merge pull request #11 from GuoYuHeJason/Mika
GuoYuHeJason Nov 12, 2024
f23c60b
Merge remote-tracking branch 'origin/main' into xuesi
K1bbu7z Nov 12, 2024
f13c5d4
Merge pull request #10 from GuoYuHeJason/guoyu
K1bbu7z Nov 12, 2024
452e9cf
Create ProjectLog
GuoYuHeJason Nov 12, 2024
9765502
Merge remote-tracking branch 'origin/main' into xuesi
K1bbu7z Nov 12, 2024
a275e92
class over
K1bbu7z Nov 12, 2024
366c131
Update ProjectLog
GuoYuHeJason Nov 12, 2024
be0bf92
Update ProjectLog
GuoYuHeJason Nov 12, 2024
337ea31
FavouriteView Update
K1bbu7z Nov 12, 2024
26943f0
Merge pull request #9 from GuoYuHeJason/Cheryl
GuoYuHeJason Nov 13, 2024
05fd353
Merge pull request #8 from GuoYuHeJason/cheryllin2154-view
GuoYuHeJason Nov 13, 2024
1b059d0
Merge remote-tracking branch 'origin/xuesi' into guoyu
GuoYuHeJason Nov 13, 2024
839a56f
Implementing JokeView
GuoYuHeJason Nov 14, 2024
3b4f0ce
Semi-Final Generate UseCase
GuoYuHeJason Nov 15, 2024
f64933f
Changing generate usecase to use output data
GuoYuHeJason Nov 15, 2024
69f5197
Changing generate usecase to use output data
GuoYuHeJason Nov 15, 2024
efdbd27
Update ProjectLog
GuoYuHeJason Nov 15, 2024
36c5378
favorite panel
cheryllin2154 Nov 17, 2024
770232e
joke ui update
alexandersunliang Nov 17, 2024
05f3345
favorite panel
cheryllin2154 Nov 17, 2024
503bc40
search favourite function typo fix
alexandersunliang Nov 17, 2024
bcc9d33
Search Use case mostly complete, and DataaccessObject complete
Mikawu73 Nov 17, 2024
c52d56b
a little bug fixed for search use case
Mikawu73 Nov 17, 2024
5091fe7
Ported logout and signup use case from lab5
Mikawu73 Nov 18, 2024
9464649
Merge pull request #7 from GuoYuHeJason/alexander.sun2
GuoYuHeJason Nov 19, 2024
a662fe0
Merge pull request #13 from GuoYuHeJason/guoyu
GuoYuHeJason Nov 19, 2024
8773e20
Merge pull request #12 from GuoYuHeJason/GuoYuHeJason-patch-1
GuoYuHeJason Nov 19, 2024
f32c025
Merge pull request #14 from GuoYuHeJason/Mika
Mikawu73 Nov 19, 2024
eb5d4a3
mainview update
alexandersunliang Nov 19, 2024
0bfa97d
mainview update
alexandersunliang Nov 19, 2024
31751d5
11.18 lab
K1bbu7z Nov 19, 2024
db118cb
Mainview constant change and relocation
alexandersunliang Nov 26, 2024
42ee75d
change path of search adapters;
Mikawu73 Nov 26, 2024
2700b73
add to fav
cheryllin2154 Nov 26, 2024
dd3af68
class over 11.24
K1bbu7z Nov 26, 2024
c56ecad
Complete FileDataAccessObject
Mikawu73 Nov 27, 2024
e7c84b1
Complete Logout and Signup Use case
Mikawu73 Nov 28, 2024
2d23ee4
Readme updated.
cheryllin2154 Nov 29, 2024
7998b1f
Merge pull request #19 from GuoYuHeJason/add_to_fav
GuoYuHeJason Nov 30, 2024
1506253
login files
alexandersunliang Nov 30, 2024
f1a4fc0
searchfavourites update
alexandersunliang Nov 30, 2024
4fcbbff
Merge pull request #18 from GuoYuHeJason/Mika
GuoYuHeJason Nov 30, 2024
ec0e4f8
Merge pull request #15 from GuoYuHeJason/Cheryl
GuoYuHeJason Nov 30, 2024
e42570b
Merge pull request #20 from GuoYuHeJason/xuesi
GuoYuHeJason Nov 30, 2024
50046f6
Merge pull request #16 from GuoYuHeJason/alexander.sun2
GuoYuHeJason Nov 30, 2024
b1a1e6e
AppBuilder and Main
GuoYuHeJason Nov 30, 2024
7cd715f
Merge pull request #21 from GuoYuHeJason/WrapUp1
alexandersunliang Nov 30, 2024
976c103
Readme updated.
cheryllin2154 Nov 30, 2024
7fd4737
Merge remote-tracking branch 'refs/remotes/origin/main' into Cheryl321
cheryllin2154 Nov 30, 2024
22bac7f
Update ff
GuoYuHeJason Nov 30, 2024
659d028
A little adjust to File DAO and SearchView
Mikawu73 Nov 30, 2024
da743b0
add to favorite
cheryllin2154 Nov 30, 2024
0509f6e
Create accessibility-report.md
cheryllin2154 Nov 30, 2024
70f061f
Visitor.java
GuoYuHeJason Nov 30, 2024
f85c3b3
Merge pull request #25 from GuoYuHeJason/guoyu
Mikawu73 Nov 30, 2024
db56edb
Merge branch 'main' into Cherylmain
GuoYuHeJason Nov 30, 2024
5c61fd4
Merge pull request #23 from GuoYuHeJason/Cherylmain
GuoYuHeJason Nov 30, 2024
b715a4f
Merge pull request #24 from GuoYuHeJason/cheryllin2154-patch-2
Mikawu73 Nov 30, 2024
a566450
Merge pull request #26 from GuoYuHeJason/Mika
GuoYuHeJason Nov 30, 2024
bf625c0
favourite and funniest(incomplete)
K1bbu7z Nov 30, 2024
3dbd86e
fav search rename and location change
alexandersunliang Dec 1, 2024
236cc96
Implements Visitor on SearchPresenter,
Mikawu73 Dec 1, 2024
b39e545
fav search presenter interactor initializor fix
alexandersunliang Dec 1, 2024
430186b
Merge pull request #27 from GuoYuHeJason/alexander.sun3
Mikawu73 Dec 1, 2024
7671764
Merge remote-tracking branch 'origin/main' into xuesi
K1bbu7z Dec 1, 2024
a23d07e
login fix, relocation for signup, app builder fav search parameter ch…
alexandersunliang Dec 1, 2024
b2c17ce
Merge pull request #28 from GuoYuHeJason/Mika
K1bbu7z Dec 1, 2024
b634315
Merge remote-tracking branch 'refs/remotes/origin/main' into xuesi
K1bbu7z Dec 1, 2024
f1c97a8
Merge pull request #29 from GuoYuHeJason/alexander.sun3
Mikawu73 Dec 1, 2024
44db3ea
Complete funniest and favourite
K1bbu7z Dec 1, 2024
bcf0c5b
Move switchToSearchView from signup to search use case
GuoYuHeJason Dec 1, 2024
c71af21
Merge pull request #32 from GuoYuHeJason/MIka
GuoYuHeJason Dec 1, 2024
b677ca9
Merge branch 'main' into xuesi
GuoYuHeJason Dec 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Csc207 Group project view 2.pdf
Binary file not shown.
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ out/
.idea/easycode.ignore

target/
token.txt
.idea/compiler.xml
.idea/encodings.xml
.idea/misc.xml
.idea/workspace.xml

### Eclipse ###
.apt_generated
Expand All @@ -29,4 +34,4 @@ bin/
.vscode/

### Mac OS ###
.DS_Store
.DS_Store
2 changes: 1 addition & 1 deletion .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 40 additions & 0 deletions ProjectLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Jason GenerateDataAccessObjects, sending requests to joke api, google gemni api
All initial draft design
Alex intitial main gui (View, ViewModel)
Cheyl Read.md completed
Cheyl Finalized UI design
Jason User and Joke entity
K1bbu7z User factory, Favrite UI
Jason: generate usecse, explain use case


TODO
If time permits:
K1bbu7z : Funnist Use Case, fav use case
Mika: Search Use Case, sign up usecase, log out usecase, user data access object
Alex: Fav_search Use Case, login usecase
Cheyl: add to fav Use Case, Fav joke display pannel
Jason: ViewManagerModel, AppBuilder

If not 1:
no login, sign up, log out, user data access object, user entity has no username and password. everything gone upon closing.
No funniest?
K1bbu7z : fav use case (including display pannel)
Mika: Search Use Case
Alex: Fav_search Use Case
Cheyl: add to fav Use Case
Jason: ViewManagerModel, AppBuilder

If not 2 (not well thought out):
No funniest, No fav_search
K1bbu7z : fav use case (just display), AppBuilder
Mika: Search Use Case, user data access object
Alex: login,sign up usecase,
Cheyl: add to fav Use Case, log out usecase
Jason: ViewManagerModel

notes
Login Signup logout logic (3 use cases)(create user from DB/File Data, write Data from curr User).
DataAccessObject (getting user info)


106 changes: 80 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,90 @@
# Note Application
# Joke Machine

This is a minimal example demonstrating usage of the
password-protected user part of the API used in lab 5.
### Project for Group #269
#### Team Name: Joke Machine
#### Domain: Joke Generation and Explanation

You can find more information about the API endpoints in
[the documentation](https://www.postman.com/cloudy-astronaut-813156/csc207-grade-apis-demo/documentation/fg3zkjm/5-password-protected-user).

If your team is considering an application for which it would be convenient to
store data in something like a database, you may find that the API calls demonstrated
here will be useful in your project, as this will allow you to store
an arbitrary JSON object associated with a username and password.

In this application, a single note has a name (the "username" in terms of the API) and the note
can be read by anyone who knows the name — but only edited by someone who
knows the password for it.
## Table of Contents

You can see the documentation in the various files for more information.
* Software Specification
* Features
* Installation Instructions
* Usage
* License
* Feedback and Contributions

## Testing
## Software Specification
Joke Machine is a joke generation and explanation platform that allows users to generate, search for, save, and understand jokes. Users can generate or search up jokes, ask for explanations, and sort their list of favorite jokes based on rating of the jokes. Joke Machine integrates with external APIs for joke generation and explanation to provide rich and diverse humor content.

The repo also includes an example of a use case interactor test, as well as
an example of an end-to-end test which automates button clicks and inspects
the contents of the actual views. This is something we discussed in the lectures
about testing in CA but had not provided a code example of before. Note, one
could also inspect the contents of the ViewModel objects instead when testing
CA to make a similar test which would be less dependent on the details of the
specific UI implementation.
## Features
Joke Generation: Generate new jokes with a variety of themes and styles.
Joke Explanation: Explain jokes, whether generated by the app or provided by the user.
Favorites Management: Save favorite jokes to revisit later.
Search and Filter:
Search for jokes by title or keywords (e.g., themes like "911").
Search for jokes within saved list of jokes
Filter jokes by rating to find the "funniest" jokes.

## Project Starter Code
## Setup and Installation
* Before setting up the project, make sure you have the correct software installed。
1. Java Development Kit (JDK) version 11 or higher:
2. https://www.oracle.com/java/technologies/javase-downloads.html
2. IntelliJ IDEA Community or Ultimate Edition:
3. https://www.jetbrains.com/idea/download/


Your team may choose to use this repo as starter code for your project. You could
also use the lab 5 code — or start from an empty repo if your team prefers.
* Once you have the software setup:
1. Clone the repository:
2. "https://github.com/GuoYuHeJason/CSC207GroupProject.git"

2. Open the Project in IntelliJ:
3. Launch IntelliJ IDEA.
4. Go to file and click New --> Project From Version Control.
5. Paste the clone and open project.

5. Install Dependencies:
6. Ensure that your project dependencies are configured in a build.gradle or pom.xml file.
7. If using Maven, IntelliJ will automatically import dependencies defined in pom.xml.
If using Gradle, open the build.gradle file, and IntelliJ will synchronize the dependencies.

6. Run the Application:
6. Locate the Main class (or equivalent entry point) in your project.
7. Right-click on the file and select Run 'Main'.

If you choose to use one of the repositories we have provided, you can either make
a fork of it or copy the subset of code you want into a completely new repository.

## Usage
### Generating Jokes
* Select the "Generate" button to create a new joke or search up joke by title or keyword
### Explaining Jokes
* If you don’t understand a joke, click on the "Explain Joke" button.
The system will provide an explanation of the joke's humor or meaning.
### Saving Favorites
* Click "favorite" to add a joke to your favorites list.
* Access your favorites anytime from the "favorited" section.
### Searching and Filtering
* Keyword Search: Enter a keyword (e.g., "911") to find jokes related to that theme.
* Funniest Jokes: Use the "Funniest" filter to sort saved jokes by their humor rating.

## License
This project is released under the Creative Commons CC0 1.0 Universal (CC0) Public Domain Dedication. See LICENSE for details.

## Feedback and Contributions
Contributing to the Project:
1. Fork the Repository:
* Click the "Fork" button on the top right of the repository page to create a copy of the project under your GitHub account.
2. Clone the Repository:
* "git clone https://github.com/your-username/joke-machine.git"
3. Create a New Branch:
4. "git checkout -b feature/new-feature"
4. Make Your Changes:
5. Add or change features
5. Submit a Pull Request:
6. Commit and push your changes to your fork and open a pull request in the main repository.
7. Provide a description of your changes explaining why they are valuable.

We appreciate you for engaging with our Joke Machine!



34 changes: 34 additions & 0 deletions accessibility-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Principles of Universal Design:

### Principle 1: Equitable Use.
The Joke machine is useful and marketable to people with diverse abilities since it does not require much skill beyond basic linguistic abilities.
The program also does not require personal information such that the user’s privacy, safety or security would be infringed upon by using the program.

### Principle 2: Flexibility in Use.
The design accommodates a wide range of individual preferences due to the diversity in jokes generated.

### Principle 3: Simple and Intuitive Use.
The program is easy to understand, given the user has basic English comprehension skills and does not require any prior knowledge.
However, the program is not accessible to those who are visually impaired and would need further implementations to overcome this problem.

## Principle 4: Perceptible Information.
Unfortunately, the program does not communicate necessary information effectively to users if they have impaired visual sensory abilities. Improvements that allow for auditory based inputs and outputs would need to be implemented.

## Principle 5: Tolerance for Error.
The design of the program minimizes hazards and the adverse consequences of accidental or unintended actions since the scope of the domain is relatively small. Thus, the program is unlikely to cause any risk to the user.

## Principle 6: Low Physical Effort.
The design can be used efficiently and comfortably and with a minimum of fatigue since the program does not require much input from the user. The user can simply use the program by clicking various buttons such as generate, save and revisit.

## Principle 7: Size and Space for Approach and Use.
Appropriate size and space is provided for approach, reach, manipulation, and use regardless of the user's body size, posture, or mobility. This is because the program does not require the user to be confined in a certain physical environment. The user can simply access the program on a laptop anywhere.


#

The Joke Machine would be primarily marketed towards individuals who enjoy humor such as comedy enthusiasts, social media users, and casual users who are seeking to learn about some jokes. In particular, the program may be engaging to students or those of a younger age as they may feel more pressure to have a sense of humor amongst their peer group. Furthermore, the explanation feature of the program may be attractive to those you are seeking for guidance in improving their literary skills to enhance their social interactions with their peers.

Although our program would likely be used for those who are looking for a casual source of entertainment but may be particularly useful for those who lack confidence in their sense of humor and want to seek guidance in interpreting jokes. This may include non-native English speakers who struggle with cultural nuances or linguistic subtleties in humor. Our program also ensures inclusivity to a wide range of users, including those who suffer from physical injuries, such as a broken leg and are unable to walk.



Loading