A server application for the client app
- First of all, create a file called
.env
and copy the content offallback.env
into this newly created file - Provide the values, if you can't understand some of the variables, go to this File
- Change the values in the Constants file
- Run or package the app, for more info visit the official Ktor Documentation
- Telegram bot
- Google and Apple #
- Firebase Cloud Messaging for notifications
- Payment methods like Zain Cash
- Optimize the server database operations performance by getting only what we need, for example in the sendNotificationsToUser route, by getting only what we need (userDeviceNotifications property in this case), there is no need to get the whole user, take a look at the usages of findUserById() and findUserByEmail()
- Try to not use
unsafe {}
in Html builders - Fix the Live chat sorting issue
- The
User
andLiveChat
models naming must be clear whatever if it's a Response, Database or Request model for each one, also decide whatever if I should update them to be the same as Product Category pattern, where I create the instance of the database user for example inside the impl itself and not in the routes - The
LiveChatDataSource
might need some changes, also the models (right now it's required to use default values for some parameters in order to fix some bug, I will decide later - Update the server code later to try to follow the rest api rules when possible, change the http method and status codes and the route paths
- In the future I might make services for the routes like
UserRoutes
orProductCategoryRoutes
to share common code Again, the Route files should only containRoute
functions and not functions that share common code - The extension function
authenticate
in the routes, made the nesting unnecessarily complex, I might change that - I might need to improve the way I handle the errors using
Result
byresult.getOrElse {}
, mayberesult.getOrThrowHttpError()
?