Skip to content
/ saga Public

A Swift app to keep track of all my recommendations + history of places I've been, things I've read, etc backed up to my Contentful database

Notifications You must be signed in to change notification settings

dgattey/saga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Saga

This is a work in progress app for syncing data to and from Contentful via a Sync API, to a native Swift app (iOS, macOS). Eventually will offer editing capabilities + be an app for keeping track of what I've read/seen/been to/etc.

To set up:

  1. Create a Config.xcconfig file at the top level of the app, and DO NOT add to any targets
  2. Configure under project -> configurations to use it for debug and release
  3. Here are the contents, where you replace the values with real data:
//
//  Config.xcconfig
//  Saga
//
//  Created by Dylan Gattey on 7/6/25.
//

// Configuration settings file format documentation can be found at:
// https://developer.apple.com/documentation/xcode/adding-a-build-configuration-file-to-your-project

CONTENTFUL_SPACE_ID = your_space_id
CONTENTFUL_ACCESS_TOKEN = your_access_token

Adding new models

Don't forget to add to PersistenceModel after adding a core data model + the model file (and ensure there aren't auto-gen files from the core model).

TODO

  • [] search improvements
    • move into sidebar
    • less boilerplate
    • highlight title/author hits as you type
    • [] cmd-k
    • [] add tags for ratings
    • [] add tags for has review
    • [] add tags for read status
  • [] move to Contentful-side search
  • [] book layout + edit view
    • [] rating
    • [] editable review
    • [] editable dates
    • [] save changes locally
  • [] figure out why The Color Purple, Transcendant Kingdom, Remembrance of Earth's Past, Chamber of Secrets, Deathly Hallows, Order of Phoenix, da vinci code, amulet of samarkand all didn't parse cover images right
  • [] save local data to server
    • [] upload + create new cover images
    • [] upload + create new books
    • [] update existing books
  • [] polish
    • [] trigger new sync call when window gets focus (or some other trigger to regularly get new data)
    • [] fix sort order after import (might be fixed by in-mempry sorting?)
    • [] fix content pane not getting cleared when resetting local data
  • [] create new book screen

Later

  • [] supporting video games, movies, tv shows
  • [] supporting a "what do I watch/play/read" feature
  • [] supporting restaurants, trips, live shows
  • [] logging how I've spent my time per month (reorg of data)
  • [] arbitrary lists
  • [] shareable lists (create a deep link to my website?)

Done

  • connection to Contentful + sync persistence
  • local persistence with Core Data
  • full data reset via settings
  • cache cover images
  • render rich text as attributed string
  • parse GoodReads CSV upload locally
    • dropzone
    • CSV file parsing
    • fetching cover images
    • better merge new data (ISBN) with dupes
    • fetch isbn where missing

About

A Swift app to keep track of all my recommendations + history of places I've been, things I've read, etc backed up to my Contentful database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages