An application that extracts and reads data from a timetable and sends push notifications to user to attend scheduled classes.
- User Authenitication using Google Oauth2
- Timetable detection from VTOP timetable page text
- Add and remove friends using friend requests
- User search to friend other users
- Display friends' timetable
- Show mutual friends
- Friend suggestions based on mutual friends
- CLI application to manage the web api
- Language - Go
- Framework - Fiber
- ORM - Gorm
- CLI framework - urfave/cli
- JWT - golang-jwt
- Download and install Docker and Docker compose
- Get Google Oauth2 Credentials JSON file for a web application
Configure the env files present in /vitty-backend-api/.env/
For local environment use .local
and for production use .production
Following environment variables need to be configured -
FIBER_PORT
- Value of port used by the web api in the form:<PORT>
, default value is:3000
DEBUG
- Set totrue
for local environment,false
for production environmentPOSTGRES_URL
- Set topostgres://<POSTGRES_USER>:<POSTGRES_PASSWORD>@postgres:<POSTGRES_PORT>/<POSTGRES_DB>
POSTGRES_USER
- Username for postgres databasePOSTGRES_PASSWORD
- Password for postgres databasePOSTGRES_DB
- Name of the postgres databasePOSTGRES_HOST
- Hostname for postgres database, default value ispostgres
POSTGRES_PORT
- Port for postgres database, default value is5432
OAUTH_CALLBACK_URL
- Callback URL for Google Oauth2,http://<backend-url>/api/auth/google/callback
JWT_SECRET
- JWT secret key that will be used to sign the tokens
Use the following command to run the application -
./vitty.sh up
vitty.bat up
Use the following command to stop the application -
./vitty.sh down
vitty.bat down
Use the following command to run the CLI application -
./vitty.sh cli <command>
vitty.bat cli <command>
NOTE: Replace script file names with
.vitty-local.sh
and.vitty-local.bat
for local environment
Postman API documentation - Vitty API
Dhruv Shah |
Made with ❤️ by DSC VIT