-
Notifications
You must be signed in to change notification settings - Fork 0
Yōkoso Overview
Yōkoso is a housing application for long-term rentals that allows landlords to post listings and students to search for housing, search for roommates, and post listings. Currently, this is done through Facebook, Craigslist, or Kijiji where it is difficult to search through postings and to know if a posting is legitimate. These sites are also general purpose and are not catered to housing, thus, they are often difficult to navigate.
Name | Role |
---|---|
Tommy Xu | Developer |
Tommy Deng | Developer |
Vivian Diec | Developer & PM |
Megan Hong | Developer |
Yōkoso
- Help students find housing
- Help landlords get make postings to get a wider reach
- Verify students and landlords
Auto-scaling and serverless application built on AWS cloud infrastructure.
Using the open source Serverless Framework, we aim to achieve the following architecture deployed to AWS.
As outlined in their Serverless Next.js At The Edge post:
Three Cache Behaviours are created in CloudFront.
The first 2.
_next/*
andstatic/*
forward the requests to S3.The 3rd. is associated to a lambda function which is responsible for handling three types of requests.
- Server side rendered page. Any page that defines
getInitialProps
method will be rendered at this level and the response is returned immediately to the user.- Statically optimised page. Requests to pages that were pre-compiled by next to HTML are forwarded to S3 where the HTML is stored.
- Public resources. These are requests to root level resources like
/robots.txt
,/favicon.ico
,/manifest.json
etc. These are also forwarded to S3 where these resources can be found.
- React/Next.js
- Node.js
- Express.js
- Next.js
- DynamoDB
- S3 Storage
- CloudFront
- Lambda@Edge functions
- Scaling
- Costs
- SEO
- Security
- Technical debt
- Malicious actors/attackers
- Integration and deployment pipelines
Form of identification to ensure the user is a real person and information to hold them liable for listings that break guidelines/ policies
- Form initial requirements after gathering user needs (from both tenants and landlords)
- Form design system and style guide for application UI
- Create mock-ups and prototypes of pages with various user flows using Figma (mobile and desktop)
- Validate initial requirements with mock-ups and prototypes
- Refine requirements and mock-ups until fully validated and satisfies user needs
- Create reusable component library from mock-ups
- Set up structure and common layout for each page
- Implement the pages considering dynamic data, authentication, and authorization (DynamoDB, S3, and Cognito)
- Design NoSQL data model
- Setup and configure database with DynamoDB and Serverless Framework
- Deploy on AWS using Serverless Next.js At The Edge
Use GitHub Actions to run continuous integration and deployment pipeline.
- Landing page
- User creation
- Post listings
- Filter through listings
- Next.js
- TypeScript
- Node
- AWS
- CloudFront
- Lambda@Edge
- S3 Storage
- DynamoDB