https://github.com/warrenmwang/coop_casa
A web application that is best described as a service for small communities platform for niche property types Zillow-clone.
https://github.com/warrenmwang/coop_casa
fullstack go monorepo react typescript webapp
Last synced: 6 months ago
JSON representation
A web application that is best described as a service for small communities platform for niche property types Zillow-clone.
- Host: GitHub
- URL: https://github.com/warrenmwang/coop_casa
- Owner: warrenmwang
- License: mit
- Created: 2024-05-03T00:07:33.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T00:06:51.000Z (over 1 year ago)
- Last Synced: 2024-10-25T12:03:29.914Z (over 1 year ago)
- Topics: fullstack, go, monorepo, react, typescript, webapp
- Language: TypeScript
- Homepage: https://coop.casa
- Size: 3.73 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Coop.casa
### Overview
Just a project to learn about building full stack web applications around a theme that I own no creative rights to. I feel legally obligated to mention
that this project is currently not a legal entity nor a real company. This does not indicate anything about
whether Coop will exist in the future. The live demo of the site can be found [here](https://coop.casa/), and I make no guarantees
about whether or not this service will be maintained indefinitely since it currently provides no real world value other than
to convey an idea of what could exist.
If you are a hacker type and see a vuln in my code and have too much free time to dive into this codebase, please submit an issue and I will fix it. Or better
yet, submit a PR!
### Technical Details
Architecture Design
- Monolith, RESTful
Frontend
- Language: Typescript, TSX
- Node JS Libraries: React, TanStack/React Query, React Router, and a couple others ...
- CSS Libraries: TailwindCSS
- Transpilers: Babel, TSC
- Bundler: esbuild (what vite uses under the hood)
Backend
- Language: Golang, SQL
- Golang Libraries: Goth, pgx, chi, jwt, and others
- Database: PostgreSQL
- Golang Tools: Goose, SQLC,
Other: Docker, Nginx
Code Formatters:
- JS/TS/JSX/TSX => Prettier
- Go => Gofmt, SQL => pgFormatter
### Getting Started
#### Development and Testing
Started with [Create React App (CRA)](https://create-react-app.dev). NOTE: I would not recommend starting new projects with CRA in 2024, if you
use options like [Vite](https://vitejs.dev/), but it still works nonetheless.
CRA configures Babel and Webpack under the hood, which may not be ideal if you want to customize them to your needs.
This project, so far, has not warranted the need to modify those configuration files.
I provide the bash script that I personally use for development in the `.dev` directory. However, it's just using `npm run start` for the client,
Go [air](https://github.com/air-verse/air) for the backend, and a docker container for the PostgreSQL DB.
Client tests are provided, run using Jest.
Backend tests are written using Go's standard library testing framework.
## Connecting Communities, Empowering Ownership
Coop wants to provide a platform for people to meet specifically with the idea in mind to
co-own a property together. Targeted specifically towards young people
who have never owned a property before, we the founders also understand what it's like to
look at the current housing market in the USA and feel the dread of trying to buy your own home.
Many things in life are hard and have to be done alone. Buying a home doesn't have to be one of them.
There are many reasons to consider co-ownership of properties. As part of our vision, we want
to emphasize the community aspect. In the wake of a current loneliness epidemic, we think
that trying to put efforts into fostering more communities that people actually want to be apart of
will ease the collective pain and suffering. Lots of people tackle this problem from different angles, and
we will come from the angle of trying to get people to commit to living together. Reducing physical distance
between old friends or new friends reduces the friction of trying to hang out and do things together or
even something as necessary and difficult like planning group trips.
Let's make great communities and learn, love, and laugh together.