Simple Crud App using Flask
![Screen Shot 2023-12-06 at 11 32 25](https://private-user-images.githubusercontent.com/113084592/288283905-dc9d77ab-685b-4452-9f35-3b71215594ae.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii8xMTMwODQ1OTIvMjg4MjgzOTA1LWRjOWQ3N2FiLTY4NWItNDQ1Mi05ZjM1LTNiNzEyMTU1OTRhZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyMVQxNDMyNDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wMDQ3MTViYjc1NmUxNTc5OTUwY2RlYWI4MmU5YWFhMmUyZjdkZDFmYzg5MWE4OTgxZmY0ODdiYTIwOGVhNjdlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9._lLscCUHVwQhoXHnPLhTIpewP570c9ylYwqlwL8y8-4)
This is a simple crud app that follow these deliverables:
- Backend and Database development
- Role Based Access Control
- Twitter like-application
- Todos application
- Testing react components
App Layouts:
![Screen Shot 2023-12-06 at 11 32 38](https://private-user-images.githubusercontent.com/113084592/288283928-8aef62b5-ad1a-47cd-bd87-d1873f8409d3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii8xMTMwODQ1OTIvMjg4MjgzOTI4LThhZWY2MmI1LWFkMWEtNDdjZC1iZDg3LWQxODczZjg0MDlkMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyMVQxNDMyNDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xOGIwZGUyY2EzNTAyY2YwOGVhMzExZjZiZWZhMTI4NjI3MWQ5ODEzN2YyZThlNTk0ZGRhNDZiYjY2ZWNkY2NkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.Big_dyapfQZss-FXGGv0sozHIsEOLm-TUmHvFM5PNs4)
![Screen Shot 2023-12-06 at 11 32 55](https://private-user-images.githubusercontent.com/113084592/288283973-695280e3-18ea-4002-a893-4c6b203c6455.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii8xMTMwODQ1OTIvMjg4MjgzOTczLTY5NTI4MGUzLTE4ZWEtNDAwMi1hODkzLTRjNmIyMDNjNjQ1NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyMVQxNDMyNDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMjA1OTc4Y2FkMmQzNmU3MWY1NTBlMjQ0MzY4NDJkODE2NzYzMjZmZGY4NzQ5MDZjYzkyNWI2MjRiNDBjMGEyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.PoXfaO0bbWGCS5zAwgvkKDP4nN2VIQn46hSZ8ndzbl0)
![Screen Shot 2023-12-06 at 11 33 07](https://private-user-images.githubusercontent.com/113084592/288283990-ad5aba22-e32a-46a6-8652-ebe274622266.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii8xMTMwODQ1OTIvMjg4MjgzOTkwLWFkNWFiYTIyLWUzMmEtNDZhNi04NjUyLWViZTI3NDYyMjI2Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyMVQxNDMyNDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05YmVmZGJjMjZiOTY2NGI1YWQxYmY3NWVkODMwYzU0Njg1OTU3NDM0NjI5NGQ3NWU4ZWRhNTRlZWJhM2NhYjlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.6kAO3WBLkufVhFTFGCfGr91u_bQ1wJpA6LMRXN8SqSw)
![Screen Shot 2023-12-30 at 11 56 04](https://private-user-images.githubusercontent.com/52250424/293444633-f6dbf2fb-1866-4a1e-aced-8d75eb1af3d9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii81MjI1MDQyNC8yOTM0NDQ2MzMtZjZkYmYyZmItMTg2Ni00YTFlLWFjZWQtOGQ3NWViMWFmM2Q5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDE0MzI0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEwYWQzNTgwNWU3ZDFlNmE4YWViNjgyOTk5ODJlYzM5MzRlMTBkMzg3NWIzMTg3NjViMzRmNTBlZGU5ZDg2MmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.uRZit4XdYOUCbwXqZNWi5GWKXmxv32vpZaN0ZnQHTDg)
![Screen Shot 2023-12-30 at 11 56 38](https://private-user-images.githubusercontent.com/52250424/293444649-e6a2ee3d-b9e4-424f-b95a-9e25d7dfcdeb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii81MjI1MDQyNC8yOTM0NDQ2NDktZTZhMmVlM2QtYjllNC00MjRmLWI5NWEtOWUyNWQ3ZGZjZGViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDE0MzI0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEyN2U0MWIzOTY0MThkMzE3MjZmYmE4OTQzNTI1MDczMjUxNzBmNGQwNmJmMjYxNjY3MjYyMWVjYjU0YWRiMDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.nT2dutdafN67446jUBH4atzkAS5kV_LkikgNDhtAf0I)
![Screen Shot 2023-12-30 at 11 56 57](https://private-user-images.githubusercontent.com/52250424/293444654-c3e1e601-01da-4906-97b8-09c650c75124.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii81MjI1MDQyNC8yOTM0NDQ2NTQtYzNlMWU2MDEtMDFkYS00OTA2LTk3YjgtMDljNjUwYzc1MTI0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDE0MzI0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgxYzA1YTE3NWVlNjFiNzJjNDE3NjNiZDZmNzk4MzhhMGNiMDczNzY4MTQxMDllMTJjM2VlNjVlOGFiNDQ3OWQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.baIbkVTdhwMxKDx2bCjxpvrxSbm7KLZ5uS1-uZEn1lI)
- Testing Login Page, expect detect form and button
- Testing Register Page, expect detect form and button
- Testing Category Page, expect detect form and button, and table
- Testing Profile Page, expect detect title and table
cd client
npm install
npm --test
![Screen Shot 2023-12-06 at 11 56 22](https://private-user-images.githubusercontent.com/113084592/288285673-526b5449-bef6-4ecc-ab83-f5771604c4d7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNTEwNjQsIm5iZiI6MTcyNDI1MDc2NCwicGF0aCI6Ii8xMTMwODQ1OTIvMjg4Mjg1NjczLTUyNmI1NDQ5LWJlZjYtNGVjYy1hYjgzLWY1NzcxNjA0YzRkNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyMVQxNDMyNDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01NjM3M2Q2MDk1MTNhNTBlOTZmNjkyNTljZDc0ZThkZGYxZTBlNGM1ZWE0NjI0ZTZmZDhlNzcxYmVhZmZjOTkyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.d0_M2nAdYmHPj-m-Kop0Iddfh9VHI0HHf6s4Y1DjYjg)
- Backend deployed on render
- Frontend deployed on netlify