Skip to content

asroq1/Project_Cats

Repository files navigation

Catchoo

Web App for Cat Lovers. 😺

한글

Built with [React + Redux + Redux-Saga] + [Spring Boot + JPA + MariaDB]

Catchoo Web App

  • Layout optimized for mobile screen
home main add
post-list post-view post_write
weight-add weight-graph weight-list

Functionalities

  1. Track Weight of Your Cats
  • Measure and record your cat's weight every day to track it in graphs or tables.
  • Your cat's age is automatically calculated with its birthdate.
  1. Registration Made Easy
  • Register as a user using a regular or social login (Kakao) option!
  1. Share Your Stories with Other Cat Lovers
  • Post any stories and photos you want to share with other users.
  • Whether it be to show off your cat's beauty or to ask questions, this app is here for you!

Tech Stack

Catchoo_Tech_Stack

  • Front-end: React + Redux (State Management) + Redux-Saga (Async Actions Management)
  • Back-end: SpringBoot + MariaDB

General

  • Implemented RESTful Routes
  • JWT used to ensure scalability with a potential increase in the number of users.

Front-end

  • React used to optimize rerendering and app performance.
  • React-Hooks used to implement states and life cycle methods while using functional components for reusable and simple codes.
  • React-Router used to manage routes and links.
  • Redux used to centralize the states and logics of the app and to manage them easily.
  • Redux-Saga used to manage asynchronous action flows.
  • Other Tools
    • immer to ensure immutability of states.
    • Axios to handle HTTP requests based on promises.
    • Redux-Persist to maintain states even after page reloads. Root state is purged after logout to ensure security.
    • Styled-component to style components without triggering unnecessary rerenders, to store the shared design elements, and to provide dark/light mode options.
    • React-Easy-Crop to crop uploaded images.
    • React-Slick to create image carousels.
    • Recharts to create charts.
    • Font-Awesome to use various icons.

Back-End

  • Java used to develop object based apps, which is easier as it helps keeps the system flexible and extensible.
  • Spring Framework used to simplify enterprise-level Java development and loose coupling of code by dependency injection and AOP.
  • Spring Boot used to make development, testing, and deployment more convenient.
  • Spring Security used to implement authentication, authorization, and protection against common attacks.
  • JPA(Hibernate) used to manipulate data from database through an object-oriented program and improve productivity.
  • MariaDB used to avoid data redundancy and data duplication.
  • Swagger UI is implemented for better communication using APIs with Front-end team.
  • Other Tools
    • JUnit used to write and run repeatable automated tests.
    • Bean Validation used to validate user input.
    • Lombok used to reduce boilerplate code for model/data objects.
    • Apache Commons Lang 3 used to manupulate core classes of Java APIs.

Deployment

  • Front-end server deployed on Netlify (temporary) and AWS.
  • Back-end server deployed on AWS

Team Members

  • This project is being developed by (2) Front-end engineers and (2) Back-end engineers, gathered via Korean developers' online community - OKKY.kr.
  • Project started on 03/30/21.
  • Tool decision, task distribution, debugging, etc. discussed every day via Slack. Weekly zoom meetings held for deeper discussion and catch-up.
  • Front-end: HS, HR
  • Back-end: HY, SH

About

집사님들을 위한 킹냥이 웹앱 😺

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages