At the core Payeet is a system for transferring points made as Magsihim project.
but as the project grew we have added more and more features.
but as the project grew we have added more and more features.
- authentication and authorization system built with gRPC and JWT with mail verfication.
- login from a new deivce alert
- transfring points
- friends/followers
- TLS/SSL encryption
- and more..
- Go
- MongoDB
- gRPC
- Flutter
- The app is made to look like a mix between a social network and a bank.
click to view in full
- create a config file
go run server.go
or run go build
and run it with pm2
flutter run
the port that the server is running on.
PORT=6969
the port and server ip should also be changed in globals.dart
.
Validation of tokens:
ACCESS_TOKEN_KEY= <SECRET>
REFRESH_TOKEN_KEY= <SECRET>
ACCESS_TOKEN_DURATION= 10m
REFRESH_TOKEN_DURATION= 24h
Database setup:
CONNECTION_STRING=
DB_NAME=<name>
USER_COLLECTION=<name>
TRANSACTION_COLLECTION=<name>
LOGS_COLLECTION=<name>
Email and password for the mailing service
SYSTEM_EMAIL= <SECRET>
SYSTEM_EMAIL_PASSWORD= <SECRET>
Karma and point calcuation:
BASE_DAILY_BONUS= 100
STREAK_DAILY_BONUS= 0.1
KARMA_MINIMUM_REQUIRED_TRANSFER_DAYS= 3
KARMA_MINIMUM_REQUIRED_TRANSFER_AMOUNT= 1500
KARMA_MULTIPLIER_FACTOR= 0.1
KARMA_MINIMUM_REQUIRED_UNIQUE_USERS= 3
KARMA_MAXIMUM_TRANSFERS_TO_SAME_USER= 3
Full config:
PORT=6969
ACCESS_TOKEN_KEY=<SECRET>
REFRESH_TOKEN_KEY=<SECRET>
ACCESS_TOKEN_DURATION=10m
REFRESH_TOKEN_DURATION=24h
CONNECTION_STRING=
DB_NAME=<name>
USER_COLLECTION=<name>
TRANSACTION_COLLECTION=<name>
LOGS_COLLECTION=<name>
BASE_DAILY_BONUS= 100
STREAK_DAILY_BONUS= 0.1
KARMA_MINIMUM_REQUIRED_TRANSFER_DAYS= 3
KARMA_MINIMUM_REQUIRED_TRANSFER_AMOUNT= 1500
KARMA_MULTIPLIER_FACTOR= 0.1
KARMA_MINIMUM_REQUIRED_UNIQUE_USERS= 3
KARMA_MAXIMUM_TRANSFERS_TO_SAME_USER= 3
SYSTEM_EMAIL= <SECRET>
SYSTEM_EMAIL_PASSWORD= <SECRET>