Skip to content

Commit

Permalink
Fixed Minor Bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
scottgriv committed Jan 25, 2023
1 parent 45c6eb3 commit 5449432
Show file tree
Hide file tree
Showing 33 changed files with 109 additions and 55 deletions.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (C) 2023 Scott Grivner <https://scottgrivner.dev>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Expand Down
65 changes: 43 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
![App Logo](./images/demo_banner.png)
![App Logo](./docs/images/demo_banner.png)

![Swift](https://img.shields.io/badge/Swift-5-orange?style=for-the-badge&logo=swift)
![iOS](https://img.shields.io/badge/iOS-16.2-red?style=for-the-badge&logo=apple)
![watchOS](https://img.shields.io/badge/watchOS-9.1-green?style=for-the-badge&logo=apple)
[![Swift](https://img.shields.io/badge/Swift-5-orange?style=for-the-badge&logo=swift)](https://swiftversion.net/)
[![iOS](https://img.shields.io/badge/iOS-16.2-red?style=for-the-badge&logo=apple)](https://support.apple.com/en-us/HT213407)
[![watchOS](https://img.shields.io/badge/watchOS-9.1-green?style=for-the-badge&logo=apple)](https://support.apple.com/en-us/HT213436)
[![Email](https://img.shields.io/badge/email-contact_me-9cf?style=for-the-badge&logo=gmail)](mailto:[email protected])
[![BuyMeACoffee](https://img.shields.io/badge/donate-buy_me_a_coffee-yellow?style=for-the-badge&logo=buymeacoffee&color=ffdd00)](https://www.buymeacoffee.com/scottgriv)

**Post.e** is a multi-language "how to build" social media application.
-------

**Post.e** is a fully functional, multi-language, "how to build" social media application.

- [Background Story](#background-story)
- [Definitions](#definitions)
Expand All @@ -20,7 +22,7 @@
- [License](#license)
- [Credit](#credit)

<img src="./images/phone_feed.gif" width="19%" height="19%"/><img src="./images/phone_post.gif" width="19%" height="19%"/><img src="./images/phone_splash.png" width="19%" height="19%"/><img src="./images/phone_profile.gif" width="19%" height="19%"/><img src="./images/phone_interaction.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_feed.gif" width="19%" height="19%"/><img src="./docs/images/phone_post.gif" width="19.1%" height="19%"/><img src="./docs/images/phone_splash.png" width="19.05%" height="19%"/><img src="./docs/images/phone_profile.gif" width="19.05%" height="19%"/><img src="./docs/images/phone_interaction.gif" width="19.05%" height="19%"/>

## Background Story

Expand Down Expand Up @@ -54,7 +56,7 @@ Currently, the `Post.swift` file contains the static values mentioned above. In

## Features:
---
<img src="./images/phone_login-register.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_login-register.gif" width="19%" height="19%"/>

- **Login & Register Screens:**
- Single Sign-On (SSO) capabilities by using a combination of Swift's [UserDefaults](https://developer.apple.com/documentation/foundation/userdefaults) class and server side session handling. Login once then automatically login in the future without signing in (unless, of course, you log out of the app which kills the active session in the `session` table).
Expand All @@ -63,12 +65,12 @@ Currently, the `Post.swift` file contains the static values mentioned above. In
- Registering a User will create a new folder in the `server/uploads` folder using the new `Prof_ID` column value, which is an `AUTO_INCREMENT` column in the database (Posts work in this same fashion).
- A unique `ID` is also generated using the `encoder.[language]` file using `Base 64 Encoding` to produce a unique external facing `ID`, stored in the database under the `Prof_Key` or `Post_Key` columns, that can be used to share Posts or Profiles in the future.
---
<img src="./images/phone_config.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_config.gif" width="19%" height="19%"/>

- **Configure Programming Language Screens:** <br>
- Pick the server side language you want **Post.e** to use. This will route the requests to the toggled language folder.
---
<img src="./images/phone_feed.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_feed.gif" width="19%" height="19%"/>

- **Feed Screen:** <br>
- Sort Posts by *Newest*:
Expand All @@ -79,22 +81,23 @@ Currently, the `Post.swift` file contains the static values mentioned above. In
- `WHERE Post_Love_Count DESC, Post_Pin_Count DESC, Post_Reply_Count, Post_Created DESC`.
- Click on the Profile name to segue to the user Profile screen.
---
<img src="./images/phone_interaction.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_interaction.gif" width="19%" height="19%"/>

- **Interaction Screen:** <br>
- View New Users on the App.
- Click on the Profile name to segue to the user Profile screen.
- Follow or Unfollow users directly from this screen.
---
<img src="./images/phone_profile.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_profile.gif" width="19%" height="19%"/>

- **Profile Screen:** <br>
- Interactive Follower, Following, and Post count buttons that will segue to the Interaction screen when clicked.
- The Post count is not a button, its a Post total (including Replies) counter only.
- Profile picture display.
- Click the Profile tab icon to scroll to the top.
- Pull refresh to get the most recent Posts.
- Post button to create new Posts.
- Order your Posts on your Profile Feed by: Newest, Oldest, Loved, Pinned, Replied counts in descending order.
- Sort Posts on the Profile feed by: Newest, Oldest, Loved, Pinned, and Replied counts in descending order.
- Edit Profile
- Change your Profile picture (take a photo or select one from your library).
- Remove your Profile picture - setting it to the default placeholder image.
Expand All @@ -103,21 +106,33 @@ Currently, the `Post.swift` file contains the static values mentioned above. In
- Scroll to the bottom of the Table, Posts will load in 25 Post chunks. If the Post # > 25, a request will be sent to the server and an activity indicator will be shown in the Table footer as it fetches the next chunk of 25.
- Within the Post Cell:
- Preview & Save Attachments.
- Pin a Post (which will be displayed on your own Profile).
- Pin or Unpin a Post.
- Pins will be displayed on your Profile.
- You cannot Pin a Reply or Posts that you created.
- Only Posts displayed on Profiles or your Feed can be Pinned.
- Reply to a Post.
- Love a Post.
- Love or Unlove a Post.
- Delete your own Posts.
- Click on the Profile name to segue to the user Profile screen.
---
<img src="./images/phone_post.gif" width="19%" height="19%"/><img src="./images/phone_attachments.png" width="19%" height="19%"/>
<img src="./docs/images/phone_reply_1.png" width="19%" height="19%"/><img src="./docs/images/phone_reply_2.png" width="19%" height="19%"/>

- **Reply Screen:** <br>
- Reply to a Post on a dedicated screen with the Post you're replying to in the header.
- Reply to a Reply (there is no limit on the Reply depth).
- Sort Posts on the Reply feed by: Newest, Oldest, Loved, and Replied counts in descending order.
---
<img src="./docs/images/phone_post.gif" width="19.05%" height="19%"/><img src="./docs/images/phone_attachments.png" width="19%" height="19%"/>

- **Post Screen:** <br>
- Type up a Post.
- Cancel the Post by clicking the Cancel button or the visible Profile Screen.
- Add Photos/Videos from your Camera or Photo Library.
- Add Attachments (**Post.e** comes with a demo directory with a few files ready to select) - see screenshot above.
- Submit the Post to the server.
- Haptic Feedback and Audible Post Alert after a Post has been successfully sent to the server.
---
<img src="./images/phone_settings-logout.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_settings-logout.gif" width="19%" height="19%"/>

- **Settings:** <br>
- About section to view the current **Post.e** version number (derived from the `info.plist` value of `CFBundleShortVersionString`).
Expand All @@ -127,25 +142,27 @@ Currently, the `Post.swift` file contains the static values mentioned above. In
- Change your Password
- Logout of the Application (which will also kill the session on the server).
---
<img src="./images/watch_support.gif" width="45%" height="45%"/>
<img src="./docs/images/watch_support.gif" width="45%" height="45%"/>

- **watchOS Support:** <br>
- Post to your Profile using audio to text or by typing in the text using the watch keyboard.
- Haptic Feedback and Audible Post Alert after a Post has been successfully sent to the server.
---
<img src="./images/phone_language_support.gif" width="19%" height="19%"/><img src="./images/watch_language_support.png" width="19%" height="19%"/>
<img src="./docs/images/phone_language_support.gif" width="19%" height="19%"/><img src="./docs/images/watch_language_support.png" width="19%" height="19%"/>

- **Language Support:** <br>
- English and Russian language support using [Localization](https://developer.apple.com/localization/). Query the `language` table in the database to view the supported languages.
---
<img src="./images/phone_dark_support.gif" width="19%" height="19%"/>
<img src="./docs/images/phone_dark_support.gif" width="19%" height="19%"/>

- **Dark Mode Support:** <br>
- Easily toggle Designs between Light and Dark Mode.
---
- **API:**
- Navigate to the `api` folder to access the API collection `.json` file used to import APIs into Postman.
- Open the `apis.[language]` file to view the list of available APIs and usage.

---

## Getting Started
- Download the application from here, Github.
- Place the `server` file on your web server.
Expand Down Expand Up @@ -220,6 +237,10 @@ Thanks and enjoy! (and I appreciate it if you've read this far - you're a legend
## Credit
**Author:** Scott Grivner <br>
**Email:** [email protected] <br>
**Website:** [scottgrivner.dev](https://www.scottgriv.dev) <br>
**Website:** [scottgrivner.dev](https://www.scottgrivner.dev) <br>
**Reference:** [Main Branch](https://github.com/scottgriv/Post.e) <br>
<img src="./images/demo_icon.png" width="5%" height="5%"/>
<div align="center">
<a href="https://github.com/scottgriv/Post.e" target="_blank">
<img src="./docs/images/demo_app_icon.png"/>
</a>
</div>
Binary file added docs/images/demo_app_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added docs/images/phone_post.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file added docs/images/phone_reply_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/phone_reply_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added docs/images/watch_support.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed images/phone_post.gif
Binary file not shown.
Binary file removed images/watch_support.gif
Binary file not shown.
6 changes: 4 additions & 2 deletions mobile/ios/Post.e.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1317,7 +1317,7 @@
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 8.0;
WATCHOS_DEPLOYMENT_TARGET = 9.1;
};
name = Debug;
};
Expand Down Expand Up @@ -1355,7 +1355,7 @@
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 8.0;
WATCHOS_DEPLOYMENT_TARGET = 9.1;
};
name = Release;
};
Expand Down Expand Up @@ -1474,6 +1474,7 @@
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = Post.e;
SDKROOT = iphoneos;
WATCHOS_DEPLOYMENT_TARGET = 9.1;
};
name = Debug;
};
Expand Down Expand Up @@ -1531,6 +1532,7 @@
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
VALIDATE_PRODUCT = YES;
WATCHOS_DEPLOYMENT_TARGET = 9.1;
};
name = Release;
};
Expand Down
Binary file not shown.
Loading

0 comments on commit 5449432

Please sign in to comment.