DukePerson Appπ
Overviewπ
DukePerson is an iOS application built using SwiftUI and SwiftData to manage and display Duke-affiliated individuals with various details such as name, role, program, hobbies, and more.
The app allows users to search, edit, and organize DukePersons. It also includes interactive animations and mini-games for enhanced engagement.
Featuresπ
π« Main Functionalitiesπ
-
DukePerson MainView
- View a list of DukePersons
- The DukePerson Data are pulled from our class's server using HTTP request (transimitted as JSON format).
- There are functions like search and sort available to the users
-
Add/Edit
- Add/Edit a dukePerson at any time
- Note that the user can add emoji by either typing or selecting from emojis
- After editing, the user can push themselves' updated information to the class server
-
Back View
- Click on a specific DukePerson to see the detail of that person
-
Animation and Mini-Games
- The user can tap on the back view to see some animation and a mini-basketball shooting game
- Walking Student Animation πΆββοΈ
- An animated character walks across the screen to enhance visual appeal.
- Basketball Shooting Game π―
- Users can drag and shoot a basketball into a hoop.
- Drag distance determines shooting power.
- Drag direction determines shooting trajectory.
- Score detection: If the ball lands inside the hoop, it counts as a score.
- Sound effects: Plays an applause sound on a successful shot.
-
Teams Management
- View DukePersons grouped by teams in the
TeamsView
. (Teams are formed based on group project)
- View DukePersons grouped by teams in the
π Technology Stackπ
- Language: Swift
- Frameworks: SwiftUI, SwiftData
- Animation & Graphics: Custom Shapes, GeometryReader, Canvas, Core Animation
- Storage: SwiftData for local persistence
- Networking: URLSession for fetching DukePersons from a remote API
- Audio: AVFoundation for sound effects
Acknowledgmentsπ
This project was developed as part of the ECE564 iOS development course at Duke.