Carpooling service, connecting people and enable sharing time together

Overview

Usepool

Usepool-Logo

Typescript Frontend-React Backend-Node-Express AWS Netlify-deploy-status


Usepool은 웹 상에서 간단히 이용할 수 있는 위치기반 카풀 매칭 서비스 입니다.

Usepool-Logo



Index

  1. Motivation
  2. Tech Stack
  3. Task Tool
  4. Schedule
  5. Convention
  6. Features
  7. UI example
  8. Demo
  9. Challenge
  10. About tech stack


Motivation

이동수단으로 대중교통을 이용하자니 사람에 치여서 불편하고, 자가용을 운전하자니 비용이 부담될 때가 있습니다.

이 때, 이동경로가 비슷한 사람끼리 같은 차로 이동할 수 있다면, 운전자는 비용을 절약할 수 있고, 탑승자는 보다 편하게 이동하며 동시에 환경보호에도 기여할 수 있지 않을까 하는 생각에서 이번 프로젝트를 기획하게 되었습니다.



Tech Stack

Base
react, Typescript

Style
styled-component

Real-time chat
socket.io

Caching
react-query

Convention Management
eslint

Version Management
git



Task Tool

  • Scheduling: Notion
  • Mockup sketch: Figma
  • Information archiving: Notion


Schedule

KANBAN

개발기간 (09.27 ~ 10.15) 총 제작기간 19일

1주차 - 기획, POC

  • 주제 선정
  • Mock up sketch 제작
  • Spec check, scheduling
  • Convention 선정
  • Directory structure setting

2주차 - 구현

  • Front
    • UI layout setting
    • 카풀 검색 algorithm 구현
    • 채팅 구현

3주차 - 마무리

  • UI 개선작업
  • Deploy
  • Readme 작성
  • Refactor


Convention



Features

  • 운전자는 장소를 검색하여 카풀 생성
  • 탑승자는 입력한 장소를 기반으로 근거리 카풀 검색 가능
  • 운전자와 탑승자는 실시간 채팅으로 의사소통


UI example

Home Page New Carpool
Home-page New-page
Search Carpool details
Search-page Details-page
Chat My page
Chat Mypage

Demo

Demo Link

Client

  • Netlify를 이용하여 애플리케이션 배포 및 관리

Server

  • AWS Elastic Beanstalk를 사용하여 애플리케이션 배포 및 관리
  • Amazon ACM (AWS Certificate Manager)을 사용한 SSL 관리 (HTTPS protocol)

Challenge

  1. Restful 한 채팅 로직 작성

    • 문제점
      • 최초 채팅 구현 시 socket listener 내부에서 database에 채팅을 기록 하도록 되어 있어서 restful 하지 못하였음
    • 해결
      • 채팅 전송시 post 요청으로 채팅이 database에 기록 된 후 해당 endpoint의 마지막에서 listener들에게 생성된 채팅 data를 내려주도록 로직 수정
  2. 사용자가 의도한 장소 입력

    • 문제점
      • 사용자는 같은 장소에 대해서도 번지수, 장소명 등 여러 방식으로 장소를 검색할 가능성이 있어, 사용자가 기대하는 장소가 입력되며 동시에 경, 위도 좌표를 입력받을 수 있도록 하는 것이 필요하였음
    • 해결책
      • 자동완성을 통하여 장소 입력하도록 ui를 구성하여, 사용자는 본인이 기대하는 장소를 입력할 수 있도록 하였으며, 항상 좌표를 입력 받을 수 있게 되었음


About tech stack

  1. Typescript

    • 지도 api, socket, props 및 server-client 간 주고받는 데이터 데이터 등 다양한 데이터를 조작해야 하는 상황에서, 런타임 에러를 방지하고 디버깅 속도를 향상시키기 위해 도입하였고, 결과적으로 기한 내에 프로젝트를 마무리 할 수 있었습니다.
  2. React-query

    • 다수의 사용자가 동시에 사용할 가능성이 있는 서비스이기 때문에, 카풀 검색 결과 등의 서버에서 가져온 데이터에 대해 무결성을 향상시키기 위하여 도입하였습니다.
You might also like...
Inteliver React SDK. Inteliver is an image management as a service.

This repository is Inteliver's official SDK for react framework. Using this SDK you can integrate your react project with inteliver image management service.

Responsive and customizable search and select for Giphy's GIFs and Stickers.
Responsive and customizable search and select for Giphy's GIFs and Stickers.

Responsive and customizable search and select for Giphy's GIFs. https://sergiop.github.io/react-giphy-searchbox/ React Giphy Searchbox is a powerful r

A React JS project to make age and gender prediction using Agify.io and Genderize.io. Only for practice use and just for fun~

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

HTML meta tags for React-based apps. Works for both client- and server-side rendering, and has a strict but flexible API.

React Document Meta HTML meta tags for React-based apps. Works for both client- and server-side rendering, and has a strict but flexible API. Built wi

A starter for React with Typescript with the fast Vite and all static code testing with Eslint and formatting with Prettier.
A starter for React with Typescript with the fast Vite and all static code testing with Eslint and formatting with Prettier.

A starter for React with Typescript with the fast Vite and all static code testing with Eslint and formatting with Prettier.

An interactive CLI automation tool 🛠️ for creating react.js and next.js projects most fast and efficiently. ⚛️
An interactive CLI automation tool 🛠️ for creating react.js and next.js projects most fast and efficiently. ⚛️

An interactive CLI automation tool 🛠️ for creating react.js and next.js projects most fast and efficiently. ⚛️

React project with Google Firebase API, create partys with admin view and user view. Users can ask topics to admin, and support other topics.

🧪 Tecnologias Esse projeto foi desenvolvido com as seguintes tecnologias: React Firebase TypeScript 🚀 Como executar Clone o projeto e acesse a pasta

Compares Discord libraries and their support of new API features. Made with React, Next.js, and Bulma.

Compares Discord libraries and their support of new API features. Made with React, Next.js, and Bulma.

⚛️  Deliver UI for Web and Mobile platforms without taking care about complexity on how to style there, learn React once and code everywhere
⚛️ Deliver UI for Web and Mobile platforms without taking care about complexity on how to style there, learn React once and code everywhere

SkynexUI Use the platform, don't care about how to style there ⚠️ Version 1.x.x is alpha, trust only in v2 A set of components writen on top of React

Owner
Chiwon Choi
Web developer
Chiwon Choi
A website made to display poems as a sharing website and resource for students in Singapore American School

7C Poems This is a website made to display poems as a sharing website and resource for students in Singapore American School. It’s made using React, T

null 1 May 20, 2022
A single page application that allows people to donate money.

This application was written in ReactJS. This is a SINGLE PAGE APPLICATION(SPA) that uses Pay On API to collect donation from users.Users can only make donations once in every hour

Ayeni Olusegun 19 Jul 18, 2022
Image Sharing Social Media App Built Using React

ShareMe Social Media Application Introduction This is a code repository for the

Adrian Hajdin - JavaScript Mastery 1.3k Jan 3, 2023
Open source authentication and authorization service, container-native, PassportJS-native, built with React and Node.

id6 Authentication and authorization as a service Docs - Twitter Why id6 ? I wrote id6 out of frustration of re-writing authentication and authorizati

id6 12 Oct 31, 2021
React implementation of the service locator pattern using Hooks, Context API, and Inversify.

React Service Locator An implementation of the service locator pattern for React 16.13+ using Hooks, Context API, and Inversify. Features Service cont

Carlos González 22 Oct 10, 2022
Auth Service sample source. It supports Solana and EVM-compatiable chains

This repository is Auth Service sample source. It supports Solana and EVM-compatiable chains, more chains and more features coming soon! Learn more visit Particle Network.

Particle Network 7 Aug 20, 2022
An application for use in recording the details and maintenance history of the air conditioning assets of an HVAC service provider.

This is an application for use in recording the details and maintenance history of the air conditioning assets of an HVAC service provider. It has been developed using a MERN SPA framework and accordingly, utilizes a MongoDB database, Express, React and Node with GraphQL.

Mark Horsfall 3 Apr 15, 2022
Food Service Prototype. React/Redux/Typescript/UIKit/Sass

Food Service Prototype. React/Redux/Typescript/UIKit/Sass

Mihail Nesterov 2 Feb 19, 2022
A React library to show an administrative UI for the Mock Service Worker JS library

A React library to show an administrative UI for the Mock Service Worker JS library

Intesys 3 Nov 17, 2022
A React Typescript search interface for the popular Giphy.com service.

giphy-search A React Typescript search interface for the popular Giphy.com service. Lets get to it Scope We want you to create a search interface for

null 1 May 18, 2022