- An open-source url-shortener.
- Build with:
- Golang
- Mux (Gorilla)
- MongoDB
- Redis
- React
- Typescript
- TailwindCSS
- Shadcn/UI
-
Clone the project locally with
git clone https://github.com/ivinayakg/shorte.live.git -
Setup env files
- for frontend env variables, run the following command from the repo root, in the terminal.
cp client/sample.env client/.env - for backend env variables, run the following command from the repo root, in the terminal.
cp api/sample.env api/.env
- for frontend env variables, run the following command from the repo root, in the terminal.
-
Setup Google Oauth keys
- Currently, the service only has one primary means of authentication, and that is with Google OAuth. Read in detail here
- You need to obtain your secret key and client ID to make this work.
- Login to your Google console here.
- Create a new project here.
- Open the API dashboard, and go to
OAuth consent screenhere. Once there configure your screen, read more here - Now navigate to
credentialsand create a new one.- add
http://localhost:3100intoAuthorized JavaScript origins - add
http://localhost:3100/user/google/callbackintoAuthorized redirect URIs - Read more here
- add
- Once done copy your
client idand yourclient secret, and paste into yourapi/.envfile for the variableGOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRETand done.
-
Setup Local DB and Local Redis
- You need
Docker Desktopinstalled for this on your system. check here - Once verified, open your
Docker Desktopand keep it running in the background. - Run the following command from the repo terminal
docker-compose -f config/compose.yml up - If you want it to be running in the background add the
-dflag.docker-compose -f config/compose.yml up -d
- You need
-
Test
- Open
clientdirectory in your terminal and runyarn dev - Open
apidirectory in your terminal and rungo run . - and done
- Open
- Coming soon...
- Hey, thank you for wanting to contribute to this project. This project is really special to me, so my sincere gratitude to you for interacting with this project to whatever extent you have. Thank you.
- You can start with contributing from here
- You can reach out to me for discussion or help. (Please keep things professional and straight, don't waste my time)
- Discord:
ivinayakg - Email:
vinayak20029@gmail.com