Giter Site home page Giter Site logo

clone-next-gmail's Introduction

Google Gmail Clone Project

  • 해당 프로젝트는 Google의 Gmail을 클론한 프로젝트입니다.

  • 기본 스택은 server side 없이 reduxnext.js로 설계하였습니다. (css는 tailwind.css)

  • Vercel deploy link : 링크

  • Route 53에서 구매한 도메인 link : 링크 - (현재 구글에서 사기성 사이트로 검토되어 수정 요청을 넣은 상황입니다.)

프로젝트 정보

1. 실행

  • npm run dev 명령어를 통해 실행

2. 페이지 구성

  • Login 캡처

    • 소셜 로그인을 구성했지만, 사기 사이트 위험때문에 임시 삭제 해놓은 상태입니다.
    • 현재는 default user의 정보로 로그인하게 되어있습니다.
  • Main

    캡처

    • 기본 Gmail의 ui/ux를 그대로 clone해본 메인페이지입니다.
    • 행아웃 및 메일 검색은 구성하지 않은 상태입니다.

3. 기능

  • 메일 보기 캡쳐

  • 메일 작성 캡쳐

  • 메일 삭제 캡쳐

  • 메일 답장 캡쳐

    캡쳐

  • 메일 별표표시 캡쳐

4. redux 구조

redux는 모두 hash map 구조로, key를 통해 해당 key의 value들을 참조할 수 있는 방식으로 구현하였습니다.

User

(1) key ( array )

(2) objs ( hash map )

  • key ( object )

    • uuid ( string ) : 유저 uuid
    • email ( string ) : 유저 email
    • name ( string ) : 유저 name
    • photoUrl ( string ) : 유저 profile image
    • threadKeys ( array ) : 유저의 thread key array
    • temp ( array ) : 작성중인 메일 임시보관 (구현 x)
    • myThread ( hash map ) : 유저의 thread hash map
      • key ( string ) : thread uuid)
        • sent ( array ) : 유저가 보낸 메일
        • received ( array ) : 유저가 받은 메일
        • starred ( array ) : 유저가 별표한 메일
        • deleted ( array ) : 유저가 삭제한 메일
        • isRead ( boolean ) : 해당 스레드의 읽음 여부

Mail

(1) key ( array )

(2) objs ( hash map )

  • key ( object )

    • uuid ( string ) : 메일 uuid
    • sender ( string ) : 보낸 유저의 uuid
    • receiver ( string ) : 받는 유저의 uuid (원래는 array이지만, 현재 단일 메일 전송으로 구현 상태이기 때문에 string으로 정의)
    • title ( string ) : 메일 제목
    • content ( string ) : 메일 내용
    • created ( timestamp ) : 메일의 작성일
    • threadId ( string ) : 해당 메일이 속한 thread uuid

Thread

(1) key ( array )

(2) objs ( hash map )

  • key ( object : thread uuid )
    • uuid ( string ) : 해당 thread uuid
    • mailList ( array ) : 해당 thread에 속한 mail list

5. 추가 예정 기능 (Demo 2)

  • server side를 구현하여 실제 데이터베이스와 연동 예정
  • 작성 중인 이메일을 임시 저장할 수 있는 기능
  • 체크박스를 통한 다중 메일 삭제 및 읽음처리 기능
  • 메일 및 유저 검색 기능

clone-next-gmail's People

Contributors

jeeseongmin avatar

Stargazers

 avatar

Watchers

 avatar  avatar

clone-next-gmail's Issues

페이지 구성

Login
image

Main
image

**메일 보기 **
image

메일 작성
image

메일 삭제
image

메일 답장
image

image

별표 표시
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.