> No security firm. No expensive audit. > Add rate limiting to every API route > Never expose env variables to the client > Use Supabase RLS on every table > Validate all inputs on the server not just client > Enable 2FA for all admin routes > Run a Claude security audit before every deploy > Log every auth event without exception > Sanitize every user input before storing it > Use HTTPS everywhere. No exceptions ever. > Set cookie flags to HttpOnly and Secure by default > Rotate API keys every 90 days minimum > Never store plaintext passwords. Use bcrypt or argon2. > Add CORS rules that whitelist only your own domains > Disable detailed error messages in production > Run dependency audits with npm audit every sprint cargo makepad android --app-label="CAD" --abi=aarch64 run -p makepad-example-cad --release /Users/aok/Projects/rustdev/CratesCode/nigig-org/cargo-makepad android --app-label="CAD" --abi=aarch64 run -p makepad-example-cad --release $ ps aux --sort=-%mem | head -30 ps: illegal option -- - usage: ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]] [-u] [-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]] ps [-L] # Android export DIOXUS_DEVSERVER_WS=ws://197.232.165.166:8080/_dioxus export DIOXUS_BUILD_ID=123 cargo makepad android --app-label="PFN" --abi=aarch64 run -p pageflipnav --release --features hotreload cargo watch -w crates/pageflipnav -c -s "MAKEPAD=lines RUSTFLAGS='-A warnings' cargo run -p pageflipnav --release" clear && cargo makepad android --app-label="PFN" --abi=aarch64 run -p pageflipnav --release clear && /Users/aok/Projects/rustdev/CratesCode/nigig-org/cargo-makepad android --app-label="PFN" --abi=aarch64 run -p pageflipnav --release cargo makepad android run -p makepad-example-camera --release MAKEPAD=lines RUSTFLAGS='-A warnings' cargo run -p pageflipnav --release -- --hot cargo makepad android adb shell am start -S \ -n dev.makepad.pageflipnav/dev.makepad.pageflipnav.MakepadApp \ --es makepad.DIOXUS_DEVSERVER_WS "ws://197.232.165.166:8080/_dioxus" \ --es makepad.DIOXUS_BUILD_ID "123" cargo makepad android adb logcat Makepad:I '*:S' | grep -E '\[hotreload\]|\[android-hotreload\]' cargo makepad android adb logcat -s Makepad | grep "\[IME\]" cargo makepad android run -p pageflipnav --release sudo cargo watch -x "run --release -- MAKEPAD=lines sudo cargo +nightly makepad android run -p pageflipnav --release" alias devdroid='emulator -avd dev' emulator -avd dev -gpu host -accel on emulator -avd dev -no-boot-anim -no-audio -no-snapshot -gpu host emulator -avd dev -wipe-data -no-snapshot-load sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager" emulator -avd dev -no-snapshot -wipe-data -no-boot-anim -gpu host -accel on sudo cargo makepad android run -p pageflipnav --release 2>&1 | grep -v "error:" cargo makepad android --manifest --app-label="PFN" --abi=aarch64 run -p pageflipnav --release cargo makepad android adb logcat -d | grep -A80 -B20 -E "FATAL EXCEPTION|beginning of crash|thread panicked|Makepad|Abort message" cargo makepad android adb logcat -s Makepad | tee /tmp/cad-ime.log cargo run -p pageflipnav --release unzip -l | grep classes sudo cargo watch -x "run --release -- MAKEPAD=lines sudo cargo makepad android --manifest --app-label="PFN" --abi=aarch64 run -p pageflipnav --release" cargo watch -w crates/pageflipnav -c -s "MAKEPAD=lines RUSTFLAGS='-A warnings' cargo run -p pageflipnav --release" cargo watch -w crates -c -s "MAKEPAD=lines RUSTFLAGS='-A warnings' cargo run -p pageflipnav --release" cargo watch -w crates -c -s "MAKEPAD=lines cargo +nightly makepad android --manifest --app-label="PFN" --abi=aarch64 run -p pageflipnav --release" cargo makepad android adb logcat | grep -iE "panic|AndroidRuntime|AndroidEnvironment|Accessibility" > logcat.txt cargo makepad android adb logcat -c && adb logcat | grep -iE "biometric|fingerprint|authresult|payflow|pay_flow|panic|Makepad.*(auth|finger|pay)" cargo makepad android adb logcat -c > fingerlot.txt && cargo makepad android adb logcat | grep -iE "biometric|fingerprint|authresult|payflow|pay_flow|panic|Makepad.*(auth|finger|pay)" > finger.txt cargo makepad android adb shell dumpsys package dev.makepad.pageflipnav | grep permission cargo makepad android adb logcat -d | grep -E "FATAL|AndroidRuntime|pageflipnav" | tail -50 # First, locate your AVD config file ls -la ~/.android/avd/YourEmulatorName.avd/config.ini # Edit the config file to increase resources sed -i '' 's/hw.ramSize=.*/hw.ramSize=4096/g' ~/.android/avd/dev.avd/config.ini sed -i '' 's/vm.heapSize=.*/vm.heapSize=256/g' ~/.android/avd/dev.avd/config.ini sed -i '' 's/disk.dataPartition.size=.*/disk.dataPartition.size=4096M/g' ~/.android/avd/YourEmulatorName.avd/config.ini echo "hw.gpu.enabled=yes" >> ~/.android/avd/YourEmulatorName.avd/config.ini echo "hw.gpu.mode=host" >> ~/.android/avd/YourEmulatorName.avd/config.ini echo "hw.cpu.ncore=4" >> ~/.android/avd/YourEmulatorName.avd/config.ini Cost row redesign (pay_sheet.rs) not seen in the app did we redisign this really still seeing Band:- (enter amout) Deduct [Toggle] Widthraw [Toggle] instead of KSh: 0 | Widthrawal: Amt[CheckBox-Disabled and Inactive user cannot interact with it] | Cost [CheckBox-Disabled] KSh: 0 | Widthrawal: Amt[CheckBox-Disabled] | Cost [CheckBox-Enabled] KSh: 0 | Deduct: Amt[Toggle-CheckBox] | Cost [CheckBox-Enabled] Pin [Input] Biometric Icon: [CheckBox] we disucuused this 1. A Add/Deduct Checkbox CheckBoxFlat{ text: "Add: Ksh 0" animator +: { disabled: { default: @on } } } 2. A cost checkbox - to make the Add/Deduct Checkbox interactive or not interactive Interactive State - - When Cost Check button is enabled (bool: true) the Add/Deduct Checkbox is in interactive state and by default the Check box label is disabled - UI: KSh: 0 | Widthrawal: Amt[CheckBox-Disabled] | Cost [CheckBox-Enabled] • When amount for the user sending Ksh 0 (Captured from user input hence empty) transaction is Ksh 0 (KSh: 0) and the amount for adding withrawal amount is Ksh 0 (Widthrawal: Ksh 0) UI: KSh: 0 | Widthrawal: Ksh 0[CheckBox-Disabled] | Cost [CheckBox-Enabled] • When amount for the user sending Ksh 1000 (Captured from user input hence we have a value) transaction is Ksh 13 (Confirm and check the bands) (KSh: 13) and the amount for adding withrawal amount is Ksh 33 (Widthrawal: Ksh 33)-(Confirm and check the bands). The input value 33 is added to. 1000+33=1033. Ksh [TextInput-1033] UI: KSh: 1033 | Widthrawal: Ksh 33 [CheckBox-Disabled] | Cost [CheckBox-Enabled] - When Cost Check button is enabled (bool: false) the Add/Deduct Checkbox is in interactive state and by default the Check box label is enabled hence - UI: KSh: 0 | Deduct: Amt[CheckBox-Enabled] | Cost [CheckBox-Enabled] • When amount for the user sending Ksh 0 (Captured from user input hence empty) transaction is Ksh 0 (KSh: 0) and the amount for adding withrawal amount is Ksh 0 (Widthrawal: Ksh 0) - UI: KSh: 0 | Deduct: Ksh 0 [CheckBox-Enabled] | Cost [CheckBox-Enabled] • When amount for the user sending Ksh 1000 (Captured from user input hence we have a value) transaction is Ksh 13 (Confirm and check the bands) (KSh: 13) and the transaction amount for sending the amount is Ksh 13 (Widthrawal: Ksh 13)-(Confirm and check the bands) - We deduct the amount from the user input: Ksh [TextInput-987] - UI: KSh: 987 | Deduct: Ksh 13 [CheckBox-Enabled] | Cost [CheckBox-Enabled] UI: KSh: 0 | Deduct: Amt[CheckBox-Disabled] | Cost [CheckBox-Enabled] Non-Interactive State - Add/Deduct Checkbox is not interactive (makepad disabled state) UI -: KSh: 0 | Widthrawal: Amt[CheckBox-Disabled and Inactive user cannot interact with it] | Cost [CheckBox-Disabled] - enable or disable the checkbox to enable of disable amount to deduct or add widthrawal amount. now when cost checkbox is enable by default the checkbox should be in disable mode indicating we are deducting the transaction amount. enabling it we indicate we are adding the widthrawal amount. the label for the deduct and withdrawal cost should be shown alongside the checkbox now the deduct and Widthrawal checkbox when enabled or disable respectively the amount originally entered by the user should be deducted and added say if user entered 1000 id deduct is enabled we should show the amount to be sent as 970 if the transaction cost is 30. if witdthrawal is selected we should display 1033 if the widthrawal amount for 100 if 33. now either of deduct. Phone [Input] CSV: No file[FlatButton] | [Preview Icon - No visible to the user] | Biometric Icon: [CheckBox] Phone [Input] CSV: Filename(Truncated file name) | [Preview Icon - To preview the numbers in uploaded CSV] | [FlatButton] Biometric Icon: [CheckBox] Pin [Input][IconButton-To HideorDisplay Button text(See login screen input text)] Biometric Icon: [CheckBox] 1. After Pressing the Pay Via Mpesa [Button] 2. At the dialog box where we have two option Option 1 - Proceed with transaction Option 2 - Cancel Transaction UI -: KSh: 0 | Widthrawal: Amt[CheckBox-Disabled and Inactive user cannot interact with it] | Cost [CheckBox-Disabled] | Confirm [CheckBox-Disabled By Default] The transaction should proceed normally with option 1 automatically selected when the confirm checkbox is not ticked. During the transaction the spp or program to capture the user/entity receiving the amount. This information is to be saved as additional information to the mpesa message which is eventually retrived into the app and clasified/autoclassified. Remember to Add an input field to pay and new expense sheets which the user inputs the category of the pay or transaction been made. Now the Input Filed is like the searchable Combobox but with no search icon so sample ui [TextInput-Placeholder text(Category)] Transaport > [DropDownMenu >] If The Confirm check box is ticked by the user the program should pause at the dialog box where we open a modal with the ui below Recepient name[Label] Copy Label[IconButton] Amount Ksh: 1000 [Label] Cancel[FlatButton] Ok[FlatButton] If cancel is selected we cancel the transaction with option 2 if Ok we proceed with option 1 Band: - (enter amount) section we should not have a card and should only show the transaction cost not the band the band should just work in the background and display the amount for transaction cost and the default amount to be shown is Ksh 0. so in a row (Ksh 0 Deduct [Toggle] Widthraw [Toggle]) th Pick CSV button does not open the file picker and does not show visually if its trully dissabled the No file selected should not appear below the button row but in one row (Button [Toggle]) - when disabled (Button Select File [Toggle]) - when enabled we should add a step to show the name of the person receiving the amount of money to be sent usually at the screen where one needs to type in 1 to proceed with the transaction or 2 not to proceed with the transaction. so i think a Toggle to give the green light to proceed with the transaction. also the toggle should be disabled by default which should indicate that each transaction should be confirmed by the user before we proceed with option 1 showing confidence we can type 1 and end the transaction. now the name need to be captured or the entity receiving the transaction needs to be captured by the systems and save the entity as the entry receiving the money transacted we should also have a category with the dropdown list of possible categories we have. also a dropdown for the spending if it personal or which project in out project list or on behalf of someone or company or project. We should have a modal for the user to proceed with the transaction by clicking ok of cancel with the name of recepient and amount. check robrix how it has the copy button in the setting screen we need a copy button in the modal besides the recepient to copy we need the build home page which is the Projects tab Mobile TOP - Add Project button Exists her. When clicked we stack nav to the form. The Form is now at the top in place of the Add Project button. Hitting save we should see a list of project added and a add button at the end of the list of added project. Splitter BOTTOM - we have the Buttom for Cad Work space and Doc and Excel. When we click the work space button we pageflip the project content with the cadworkscpace or docs or excel or invoice builder. we should also have a close button to page flip back to the project view. this page flip clears everything in the screen including the pageflipnav bottom pull up sheet and will be back when in the home screen