Skip to content

ryanliszewski/anml

Repository files navigation

anml mobile app

This repo is the react native mobile app for anml.

What's anml?

anml is a social network for pets.

  • Your pets can sign up or login using their paws.
  • They can upload selfies or post their thoughts for other pets to see.
  • They can also look at other pets posts and either paw (like) or scratch (dislike) it.

Getting started

git clone https://github.com/ryanliszewski/anml.git

yarn install or npm install  

To run the app locally: 

exp ios (to run on iOS) 

or

exp android (to run on android)

or 

exp start

Objectives

  • Learn how to style screens and create navigation between them.
  • Learn advanced RN styling and use LinearGradient, Image, Icons & Custom Fonts
  • Learn creating custom components with proptypes
  • Learn basic Redux

TODO - Milestone 1

  • Design & build an Intro Screen
  • Bonus: Add Snap Carousel with Lottie animations to Intro Screen
  • [ x ] Design & build an Signup Screen
  • Bonus: Add buttons to sign up with Facebook & Twitter
  • [ x ] Design & build an Login Screen
  • Bonus: Add buttons to login with Facebook & Twitter
  • [ x ] Design & build an Profile Screen
  • Bonus: Add the Logout button
  • [ x ] Design & build an Social Feed Screen
  • Attach screenshots/gif of screens to README.MD

ScreenShots

####Landing

TODO - Milestone 2

  • Understand the 3 main navigation patterns for mobile apps:
  • 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
  • Add working gif of app to README.MD

ScreenShots - TODO

TODO - Milestone 3

  • Intro Screen - Make simple GET request to /api to check server status
  • Signup Screen - Make POST request to /auth/signup to create a new user
    • Bonus: Add UI validation to Signup Screen - name (not null), email (format) & password (min. 8 characters)
  • Login Screen - Make POST request to /auth/login to validate and login an existing user
    • Bonus: Add UI validation to Login Screen - email (format) & password (min. 8 characters)
  • Social Feed Screen - Make GET request to /api/feed/ to get all posts for social feed
    • [] ⭐ Bonus: Use ActivityIndicator to show placeholder loading when fetching feed data
    • [] ⭐ Bonus: Use DeviceEventEmitter to trigger fetching posts when the new_post_created event is emitted
    • [] ⭐ Bonus: Use timeSince() utility function to show relative times for post creation
  • [] Create Post Screen - Make POST request to /api/users/:userId/posts to create a new post by the user
    • Use ImagePicker (expo) to allow the user to add a picture to the post - Snack demo here
      • [] ⭐ Bonus: Use DeviceEventEmitter to emit new_post_created event once post is created
  • Profile Screen - Make GET request to /api/users/:userId to get all the profile data
    • [] ⭐ Bonus: Use ActivityIndicator to show placeholder loading when fetching profile data
    • [] ⭐ Bonus: Use DeviceEventEmitter to trigger fetching profile data when the user_profile_updated event is emitted
  • [] Edit Profile Screen - Make PUT request to /api/users/:userId to update a user's profile information
    • [] ⭐ Bonus: Use DeviceEventEmitter to emit user_profile_updated event 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

TODO - Milestone 4

  • Add Like, Comment and Follow API functionality
  • Clean up and format README.MD to 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

TODO / Ideas-

  • - Like functionality with Redux
  • - Create pack functionality

API Documentation

**Namespace:** `/auth`

// User Authentication endpoints
router.post('auth/signup'); // CREATE
router.post('auth/login'); // VALIDATE / READ

**Namespace:** `/api`

// All data endpoints
router.get('api/users/all'); // READ
router.get('api/posts/all'); // READ

// Social Feed endpoints
router.get('api/feed'); // READ

// User data endpoints
router.get('api/users/:userId'); // READ
router.put('api/users/:userId'); // UPDATE

// Posts endpoints
router.get('api/posts/:postId'); // READ
router.post('api/users/:userId/posts'); // CREATE
router.put('api/users/:userId/posts/:postId'); // UPDATE
router.delete('api/users/:userId/posts/:postId'); // DELETE

// Follower endpoints
router.get('api/users/:userId/followers'); // READ
router.get('api/users/:userId/following'); // READ
router.post('api/users/:userId/follow/:followingId'); // CREATE
router.post('api/users/:userId/unfollow/:followingId'); // DELETE

// Like endpoints
router.get('api/posts/:postId/likes'); // READ
router.post('api/posts/:postId/like/:userId'); // CREATE
router.post('api/posts/:postId/unlike/:userId'); // DELETE

// Comment endpoints
router.get('api/posts/:postId/comments'); // READ
router.post('api/posts/:postId/comment/:userId'); // CREATE
router.post('api/posts/:postId/uncomment/:userId'); // DELETE

About

A place where animals can be anmls. React Native app for MobileSpace.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors