Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gatherly

A comprehensive iOS app for discovering, creating, and managing social events in your area. Built with SwiftUI and designed for a seamless event experience.

Features

  • Home Feed: Browse upcoming events with beautiful event cards
  • Event Details: View comprehensive event information, descriptions, and RSVPs
  • Create Events: Add new events with ease using the add event flow
  • Edit Events: Modify event details after creation
  • Event Map: Explore events on an interactive map with location details
  • User Profile: View your profile and events you've RSVPed to
  • Event Service: Backend integration for fetching and managing events
  • Error Handling: Robust error handling and loading states throughout the app

Tech Stack

  • Language: Swift
  • UI Framework: SwiftUI
  • Architecture: MVVM (Model-View-ViewModel)
  • Platform: iOS 15+
  • IDE: Xcode 14+

Project Structure

Gatherly/
├── Core/
│   ├── GatherlyApp.swift          # App entry point
│   ├── ContentView.swift          # Main navigation
│   └── EventService.swift         # API/data service layer
├── Home/
│   ├── HomeView.swift
│   ├── EventsViewModel.swift
│   └── EventCardView.swift
├── EventDetails/
│   ├── EventDetailsView.swift
│   └── EventDetailsViewModel.swift
├── AddEvent/
│   ├── AddEventView.swift
│   └── AddEventViewModel.swift
├── EditEvent/
│   ├── EditEventView.swift
│   └── EditEventViewModel.swift
├── Location/
│   ├── EventMapView.swift
│   ├── EventsMapViewModel.swift
│   └── MapDetailView.swift
├── ProfileView/
│   ├── ProfileView.swift
│   ├── ProfileVIewModel.swift
│   └── ProfileEventCardView.swift
├── Models/
│   ├── Event.swift
│   ├── UserProfile.swift
│   ├── RSVPedEvent.swift
│   └── EventsResponse.swift
├── Error Handling/
│   ├── LoadingState.swift
│   └── ErrorType.swift
├── Assets.xcassets/
└── Demo/
    ├── Home.png
    ├── Profile.png
    ├── Maps.png
    └── Event Info.png

Getting Started

Prerequisites

  • Xcode 14 or later
  • iOS 15 or later
  • Swift 5.7+

Installation

  1. Clone the repository:

    git clone https://github.com/maxwellhu9/gatherly.git
    cd gatherly
  2. Open the project in Xcode:

    open Gatherly.xcodeproj
  3. Select a simulator or connected device and press Run (⌘R).

Architecture

Gatherly uses the MVVM pattern for clean separation of concerns:

  • Views: SwiftUI components for UI rendering
  • ViewModels: Business logic and state management
  • Models: Data structures for events, profiles, and responses
  • Service: EventService handles backend communication and data fetching
  • Error Handling: Centralized error and loading state management

Screenshots

Home screen Profile screen Maps screen Event info screen

Contributing

Contributions are welcome! Feel free to fork the repository and submit pull requests for bug fixes, features, or improvements.

License

This project is open source and available to modify and extend.

Author

Created by Maxwell Hu

About

app for discovering social events in your area

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages