https://github.com/kauefraga/zetashort
🔗 An URL shortener. A simple and reliable solution for users + url shortening.
https://github.com/kauefraga/zetashort
express server url-shortener
Last synced: about 2 months ago
JSON representation
🔗 An URL shortener. A simple and reliable solution for users + url shortening.
- Host: GitHub
- URL: https://github.com/kauefraga/zetashort
- Owner: kauefraga
- License: mit
- Created: 2023-11-17T17:48:44.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-22T22:31:47.000Z (over 2 years ago)
- Last Synced: 2025-04-02T23:45:21.524Z (about 1 year ago)
- Topics: express, server, url-shortener
- Language: TypeScript
- Homepage:
- Size: 246 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
---
> 🔗 An URL shortener. A simple and reliable solution for users + url shortening.
> [!IMPORTANT]
> 🚧 Work in progress
### Features
## ⬇️ Getting Started
### How to install, build and run it
1. Clone the repository
2. Install dependencies
3. Build and start 😉
```bash
# (1)
git clone https://github.com/kauefraga/zetashort.git
cd zetashort
# (2)
pnpm i --frozen-lockfile
# (3)
pnpm build
pnpm start
```
### Usage
Here's a quick walkthrough:
Want to see a hello world?
```bash
> GET /v1
```
Want to create a user?
```bash
# body { username: string, password: string }
> POST /v1/users -> Token and expiresIn
```
Want to find a specific user?
```bash
> GET /v1/users/:userId -> User
> GET /v1/users/:username -> User
```
Want to list all the stored users? (authorization required)
```bash
# authorization: bearer {token}
> GET /v1/users -> Users list
```
### About the solution
Why did you choose node/typescript?
> I choose node/typescript because i am familiar with it. Patterns, Node, Typescript, PNPM, Express, Prisma, etc. In the future, i may create some similar solution with Golang.
Which dbms did you choose? Why? Did you consider using NoSQL?
> I also choose PostgreSQL ([bitnami/postgresql](https://hub.docker.com/r/bitnami/postgresql)) because of my familiarity with it. Sincerely, I didn't consider using a NoSQL database, but i would strongly recommend them because of their flexibility and performance.
## 💪 How to contribute
Feel free to open an [issue](https://github.com/kauefraga/zetashort/issues). I would love to read and fix the bugs you spotted.
If you want to contribute with your code, follow it:
1. With the repository forked and cloned, start the development mode
2. Develop something cool
3. Open a pull request
```bash
# (1)
pnpm dev
```
## 📝 License
This project is licensed under the MIT License - See the [LICENSE](https://github.com/kauefraga/zetashort/blob/main/LICENSE) for more information.