Daug is a fully functioning Social Network mobile application for pet owners to post pictures of their pets and share it with community.
- Users can sign up & log in into the app
- Users can create and upload pictures new post
- Users can like, dislike and comment on others post
- Users can follow each other
Used React Native AWS3 library to let the users upload a new profile picture. Additionally, I used React Native Elements library to build UI, React Navigation library to handle navigation, and packages such as react-native-modal and React-Native-Keyboard-Aware-Scroll-View to improve UI.
Intro, Login & Sign Up screens are based on Robinhood App.
Profile screen is based on Instagram.
Social Feed screen is based on Facebook and Instagram.
Learn more about the milestones of the product and how I achieved them.
- Design & build an Intro Screen
- ⭐ Bonus: Add Snap Carousel with Lottie animations to Intro Screen
- Design & build an Signup Screen
- ⭐ Bonus: Add buttons to sign up with Facebook & Twitter
- Design & build an Login Screen
- ⭐ Bonus: Add buttons to login with Facebook & Twitter
- Design & build an Profile Screen
- ⭐ Bonus: Add the Logout button
- Design & build an Social Feed Screen with Mock Data
- Attach screenshots/gif of screens to
README.MD
- Understand the 3 main navigation patterns for mobile apps:
- StackNavigator
- TabNavigator
- DrawerNavigator
- Setup a IntroStack (using StackNavigator) for the Intro Screen (root), Login Screen (push) & Sign Up Screen (push)
- Setup a HomeTabs (using TabNavigator) for the Social Feed Screen (default) and Profile Screen
- Setup a RootNavigator (using StackNavigator) with the IntroStack & HomeTabs with
mode: "modal" - Design & build an Edit Profile Screen
- Setup a ProfileStack (using StackNavigator) for the Profile Screen (root), Post Details Screen (push) & Edit Profile Screen (modal) with mode: "modal" and custom RNE header component
- Design & build a Post Details Screen
- Design & build a Create Post Screen
- Setup a SocialStack (using StackNavigator) for the Social Feed Screen (root), Post Details Screen (push) & Create Post Screen (modal) with mode: "modal" and custom RNE header component
- ⭐ Bonus: Display Posts on ProfileScreen
- ⭐ Bonus: Setup a HomeNavigator(using DrawerNavigator) with the HomeTabs (as root) and update RootNavigator to use HomeNavigator instead of HomeTabs
- Intro Screen - Make simple
GETrequest to/apito check server status - Signup Screen - Make
POSTrequest to/auth/signupto create a new user - ⭐ Bonus: Add UI validation to Signup Screen - name (not null), email (format) & password (min. 8 characters)
- Login Screen - Make
POSTrequest to/auth/loginto validate and login an existing user - ⭐ Bonus: Add UI validation to Login Screen - email (format) & password (min. 8 characters)
- Social Feed Screen - Make
GETrequest to/api/feed/to get all posts for social feed - ⭐ Bonus: Use
ActivityIndicatorto show placeholder loading when fetching feed data - ⭐ Bonus: Use
DeviceEventEmitterto trigger fetching posts when thenew_post_createdevent is emitted - ⭐ Bonus: Use
timeSince()utility function to show relative times for post creation - Create Post Screen - Make
POSTrequest to/api/users/:userId/poststo create a new post by the user - ⭐ Bonus: Use
DeviceEventEmitterto emitnew_post_createdevent once post is created - Profile Screen - Make
GETrequest to/api/users/:userIdto get all the profile data - ⭐ Bonus: Use
ActivityIndicatorto show placeholder loading when fetching profile data - ⭐ Bonus: Use
DeviceEventEmitterto trigger fetching profile data when theuser_profile_updatedevent is emitted - Edit Profile Screen - Make
PUTrequest to/api/users/:userIdto update a user's profile information - ⭐ Bonus: Use
DeviceEventEmitterto emituser_profile_updatedevent once user data is updated - Setup Authentication flow for app using
AsyncStorage. Once the user has logged in then take them to home page each time they open the app again - Use Redux to share state between tab bar & screens
- Add working gif of app to
README.MD
- Dynamically load user info
- Fix photo upload and add take photo functionality
- Add Like, Comment and Follow API functionality
- Clean up and format
README.MDto showcase app - follow this template - ⭐ Bonus: Add phone number UI to Edit Profile screen
- ⭐ Bonus: Add Camera functionality to Create Post screen
- ⭐ Bonus: Use Redux to share state between tab bar & screens
- Add working gif of app to
README.MD
Would like to implement Redux in the future to better manage the state. Also would like to add themes to the app to enable light/dark modes, and overall make the app more dynamic and functional.
git clone https://github.com/mitulsavani/react-native-daug.git
exp start
exp ios
exp android
For any other questions about this repo in general please reach out to @mitulsavani on Github.
PS: Feel free to fork it if you find my app interesting.
Thanks
