portfolio thumbnail
2020

Investalk

Investalk is a chat app specialized for discussing a stock market in South Korea.

Mobile DevelopmentReact NativeSendbirdTypescriptReduxRedux-observableNode.jsExpress.jsMySQLAWS RDSAWS ECSFull Stack DevelopmentFirebasePassport.js

Intro

Investalk is a chat app specialized for discussing a stock market in South Korea. Users could join a specific stock channel to share ideas, information, and so on. Also, it gets the latest stock data from the server that aggregates the data using web scrapping.

Image

Responsibility

Mobile Client(Android / iOS)

I developed mobile apps using React Native. They wanted React Native to reduce the cost of the development. Also, they tried to use Sendbird SDK to build the chat feature.

Architecture

I used Redux and Redux-observable to manage the app's states and handle async processes such as a network API call.

Login

I implemented social logins(Facebook, Apple, and Kakao) and email signup.

Profile

I developed the page showing a user's profile such as avatar, user name, email, Etc.

Chat

I implemented chat features using Sendbird SDK. Most features that I implemented were below,

  • CRUD a chat room
  • Join/Leave a chat room
  • Send an image in a chat room
  • Send a text message
  • Search a chat message
  • Push notification for new message
  • Show a badge of the number of unread messages
  • Mark as read or unread message
Image

Server

I designed the backend architecture and developed the server APIs. I used AWS RDS(Mysql) to manage the user data and the chat rooms synced with Sendbird account because using sequelize.js made the development easy instead of writing a sql query.

User management(Login, Signup)

I developed APIs for user management. I implemented the login/signup APIs using Passport.js. Additionally, I created several APIs for managing users in the administrator website, like banning a user account.

Chat room management

I developed APIs for managing chat rooms. I implemented an API to mark a chat room as a favorite list item in a specific user account.

Crawling data

There was a batch process to crawl the server's data analysis, Retrieval, and Transfer System(DART) from the institute website. Then, I implemented an API to read the crawled data from the database table.

Deployment

The client had already created an AWS account for the deployment. So I used AWS ECS and AWS Batch to deploy the application.