Skip to content

DP+, the official mobile app for The Daily Pennsylvanian, 34th Street, and Under The Button

Notifications You must be signed in to change notification settings

dailypenn/canada-goose

Repository files navigation

DP+

The official mobile app for The Daily Pennsylvanian, 34th Street, and Under The Button!

Table of Contents
  1. Features
  2. Installation
  3. Contributing
  4. Operation... Canada Goose?

Features 📱

  • Top Stories: View what’s trending in The Daily Pennsylvanian, 34th Street Magazine, and Under The Button.
  • Discover: Search the articles of each publication and view the most recent articles in certain categories.
  • Crosswords: Challenge yourself by playing our DP+ crosswords!
  • Bookmarked Articles: Save articles to read at a later time.
  • Manage Feed: Change the order in which categories on your home feed change.
  • Notifications: Keep up to date on breaking news and stories chosen by editors.

Installation 🚀

  1. Clone the repo.
    git clone https://github.com/dailypenn/canada-goose.git
  2. Install NPM packages.
    npx expo install
    The command above runs npm install using packages that are compatible with the current expo version - if it gives you errors, feel free to try npm install instead.

🔔 Note: For most purposes, you should use the development branch. If you are using the master branch, you must set up the iOS app credentials locally:

  1. (master branch only!) Update credentials.json with local iOS credentials
    1. Get distribution certificate from Apple Developer Portal and update path and password.
    "distributionCertificate": {
     "path": "ios/certs/<DISTRIBUTION_CERTIFICATE>.p12",
     "password": "<DISTRIBUTION_CERTIFICATE_PASSWORD>"
    }
    1. Download provisioning profiles from Apple Developer Portal and update paths. The main app target and the OneSignalNotificationServiceExtension require separate provisioning profiles. For local and development EAS builds, the provisioning profiles should be of type Ad hoc. For production EAS builds, the provisioning profiles should be of type App Store.
    "provisioningProfilePath": "ios/certs/.../<PROVISIONING_PROFILE>.mobileprovision"
  2. If you want to run the app directly on your device, you must first register the device with Expo. Otherwise, feel free to skip this step.
    eas device:create
  3. Build the app. This may take a while, but you don't have to repeat this process unless you change the underlying native code powering the app!
    eas build --profile <profile-name> --platform <platform>
    1. <platform> should be ios, android, or all
    2. <profile-name> should be either development (to run the app on your device), local (to run the app on an iOS simulator), or production (to create a production build for submission).
      1. For a local build:
        • Download the build once it is completed from the link provided. This will be a .tar.gz file.
        • Extract the file by opening it. You will now have a file like DP.app.
        • Open up your simulator.
        • Drag the file into the simulator.
        • The app will be installed in a few seconds.
      2. We are currently using React Native version 0.71.14. However, in previous iterations, we used React Native versions 0.69 and prior where there is a known bug in node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp preventing Fastlane from building correctly on Expo. See the official issue here: React Native Issue #36758. Follow the steps below to apply a development patch for this issue only.
        • Verify that the expo build fails due to the issue described above. If the build works or fails due to another error, do not run the patch steps listed below.
        • Install patch-package
        • Modify the source code similar to this commit. Exact line numbers may vary.
        • Run npx patch-package react-native
  4. Start the app.
    npx expo start --dev-client
    If you are developing against a physical device, scan the resulting QR code. Otherwise, press the "a" or "i" key to open the app in an Android emulator or iPhone simulator respectively. Important Note: To avoid runtime issues when starting the development server, please ensure that your machine is running Node.js v16.20.2 (LTS). See this link to see how to change between versions.

Contributing ⭐

In order to contribute, please apply to join our team! Applications open at the beginning of fall and spring semesters here!

Operation Canada Goose ❓

Tasked with migrating content from the harsh winter envrionment of print publication to the temperate oasis of mobile communication, DP Developers faced a challenge like no other: what do we name our objective? It wasn't until we passed the hundredth person with an overpriced winter jacket that we found an animal which so accurately captured the migratory nature of our mission and Penn culture as a whole. And so, equipped with a fitting name, we hatched our plan.

Operation Canada Goose is here to bring you the best of The Daily Pennyslvanian, straight to your down jacket pockets.


About

DP+, the official mobile app for The Daily Pennsylvanian, 34th Street, and Under The Button

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •