Table of Contents
A Todo App made with various Spring Framework Modules. Initially, I thought of letting the users make a decision whether to send email notifications if the deadline of their Todos would soon meet. After some research and trials, I guess I could do it a little later than I had plan.
- Install your database of choice. Mine was Postgresql.
- Find the
application.propertiesfile inside the/src/main/resourcesdirectory and change the settings to your appropriate database of choice. - In this step, you could either choose to create keys for JWT Signing via the library or create a keystore. If you wanna create a keystore, you're on your own but if you choose to just create it during application startup, follow through.
- Create a class or just simply pick a class that would be responsible for creating and holding your keys.
- Point the keys needed for the
JwtProviderclass andJwtAuthFilterto the class needed for the JWT to work.
- Navigate through
/src/main/resourcesand you will find different application specific properties. These are properties that are appropriate for different environments such asapplication-test.propertiesfor github actions testing and for local environment testing,application-development.propertiesfor local development properties, andapplication-production.properties- The
application-test.propertiespoints to a docker container running a postgres image. You can use any means of running a postgresql database and just put the apppropriate spring datasource properties into the properties file. - If you navigate through the
application-production.propertiesfile, there is no spring datasource properties likespring.datasource.urlorspring.datasrouce.password. This is because the app is hosted on heroku and has a postgresql plugin. Heroku takes care of the mapping of the spring datasource properties thus the empty spring datasource property file.
- The
- This backend currently requires a signed JWT to be present in an authorization header. Since this backend generates keys on application startup and does not provide a keystore when the backend generates a JWT, that JWT is invalid when the application starts up or restarts.
- Email API Service to send email notifications for nearing deadline Todos
- Protected Resource Test Cases
- Create a keystore for signed JWTs.
- Host a postgresql database on the cloud to achieve duplicates of backend
- For now, the app uses Twillio's sms api. With this, the app can only send to phone numbers which verified by your Twillio account.
- Give a warning if
todois set to sendable but there are no phone numbers registered for the user. - Twillio Test Cases
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Discord - [757516400716939266]
Project Link: [https://github.com/talentedasian/Todo-App/]