Skip to content

Fullstack, Single-Page Application. Frontend: Javascript, React, Redux. Backend: Ruby-on-Rails. Database: PostgreSQL.

Notifications You must be signed in to change notification settings

lukewhchen/babybook

Repository files navigation

Babybook

LIVE

Babybook is a full-stack, single page web application that makes it easy for parents to share baby photos and exchange parenting information.

Technologies

  • Ruby on Rails
  • PostgreSQL
  • JavaScript (ES6)
  • React.js
  • Redux
  • AWS S3
  • HTML
  • CSS
  • Heroku

Features and Implementation

Authentication

When visiting babybook, you can use the Demo button on the navigation bar to login on the fly. You can also create a new account using the signup form and login with your personal password. The user's account information are protected by the Auth pattern. Only the valid user can log-in and see all the features.

Welcome Page

News Feed

Once users sign up for an account, they can see all the posts/comments/news on the main page. Users can post their cutest baby photos through the Post button. The main purpose of babybook is to share baby's photo, if you don't have one for now, the algorithm will automatically pick one for you. Photos are hosted using an AWS S3 bucket and stored references into the database.

Main Page

Search & Third Party API Integration

There is a search bar located on the navigation bar. Users can easily navigate search results through a mouse and/or keyboard. Babybook integrated a weather API from OpenWeatherMap to access the current weather data.

Search

Infinite Scrolling

Implementing Infinite Scrolling feature with Intersection Observer API

Scroll

Profile Pages

In order to improve server loading speed, we cannot fetch all information pertaining to all of our users in the database in the first request. Therefore, when the current user visits another user's profile page, the information for that specific user must be fetched before the page is rendered. This was accomplished by saving an attribute in our Redux store which allowed us to know if the user's information had already been fetched, and if not, we could fetch the user through our ApiUtil.

Profile

About

Fullstack, Single-Page Application. Frontend: Javascript, React, Redux. Backend: Ruby-on-Rails. Database: PostgreSQL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published