-
Notifications
You must be signed in to change notification settings - Fork 929
Update my repo #103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update my repo #103
Conversation
|
@ilemonajames is attempting to deploy a commit to the JS Mastery Pro Team on Vercel. A member of the Team first needs to authorize it. |
WalkthroughThis update modifies branding across the project, changing names and image assets from "Horizon" to "Fundilla" or "Fundilar" and updating logo image paths from SVG to PNG formats. Environment variable values for external services are refreshed, Changes
Estimated code review effort3 (~45 minutes) Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
npm error Exit handler never called! ✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
ok |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
🔭 Outside diff range comments (1)
app/(auth)/layout.tsx (1)
13-18: Space in filename will break static asset path
src="/icons/100x80 v.png"contains a space. Next.js will encode it to%20, which is easy to miss and error-prone when deploying to S3/CDN. Rename the file to a kebab/underscore name and update the import.- src="/icons/100x80 v.png" - alt="Auth image" + src="/icons/auth-image.png" + alt="Auth side illustration"
🧹 Nitpick comments (5)
.gitignore (1)
28-31: Ensure sample env file is committedAdding
.envto.gitignoreis the right call for security, but now nothing documents required variables. Commit a redacted.env.example(or keep the one already in the repo up-to-date) so new devs & CI know the expected keys.components/Footer.tsx (1)
32-34: Alt text mismatch & missingsizeswithfill
- The alt now reads
"fundilla"but the image is a logout icon. Prefer something like"Logout"for clarity.- When using
fillwithnext/image, supply asizesprop to avoid runtime warnings and CLS.-<Image src="icons/logout.svg" fill alt="fundilla" /> +<Image + src="icons/logout.svg" + fill + sizes="24px" + alt="Logout icon" />README.md (1)
42-43: Brand name inconsistencyDocs now mention “Fundilar”, while the UI/components use “Fundilla”. Pick one spelling to avoid confusion for users & SEO.
components/MobileNav.tsx (1)
37-41: Alt text could be more descriptive
alt="Fundilla"doesn’t say what the image is. Prefer something like “Fundilla logo” for accessibility tools.app/layout.tsx (1)
15-18: Hard-coding brand strings spreads duplicationTitle, description and icon path now say “Fundilla”, but other files disagree (Finapex, Fundilar). Recommend centralising brand constants (e.g.
/lib/branding.ts) so a future rename is one-line.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (4)
package-lock.jsonis excluded by!**/package-lock.jsonpublic/icons/100x80 v.pngis excluded by!**/*.pngpublic/icons/logo-light.pngis excluded by!**/*.pngpublic/icons/logo.pngis excluded by!**/*.png
📒 Files selected for processing (11)
.env(1 hunks).gitignore(1 hunks)README.md(1 hunks)app/(auth)/layout.tsx(1 hunks)app/(root)/layout.tsx(1 hunks)app/layout.tsx(1 hunks)components/AuthForm.tsx(1 hunks)components/Footer.tsx(1 hunks)components/MobileNav.tsx(1 hunks)components/Sidebar.tsx(1 hunks)package.json(2 hunks)
🔇 Additional comments (1)
package.json (1)
2-3: Project name deviates from UI brand
"name": "Finapex"doesn’t match “Fundilla/Fundilar” shown in the UI. This will confuse contributors and users of the package registry.
| <Image src="/icons/logo.png" width={30} height={30} alt="logo" /> | ||
| <div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Alt text & asset check
alt="logo" is too generic and hurts a11y. Consider renaming to something descriptive such as alt="Fundilla logo".
Also verify the PNG actually exists under public/icons/logo.png; otherwise Next 13 build will fail.
🏁 Script executed:
#!/bin/bash
# Assert the file exists in the repo
fd -t f logo.png | head -n 5Length of output: 52
Improve image alt text for accessibility
- ✅ Asset verified:
public/icons/logo.pngexists. - 📝 Update the
altattribute to be more descriptive.
In app/(root)/layout.tsx around lines 22–23, change:
- <Image src="/icons/logo.png" width={30} height={30} alt="logo" />
+ <Image src="/icons/logo.png" width={30} height={30} alt="Fundilla logo" />📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <Image src="/icons/logo.png" width={30} height={30} alt="logo" /> | |
| <div> | |
| <Image src="/icons/logo.png" width={30} height={30} alt="Fundilla logo" /> | |
| <div> |
🤖 Prompt for AI Agents
In app/(root)/layout.tsx around lines 22 to 23, update the alt attribute of the
Image component from a generic "logo" to a more descriptive text that clearly
identifies the image, such as "Company logo" or a specific brand name, to
improve accessibility for screen readers.
| src="/icons/logo.png" | ||
| width={34} | ||
| height={34} | ||
| alt="Horizon logo" | ||
| alt="Fundilla" | ||
| /> | ||
| <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Horizon</h1> | ||
| </Link> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Brand label still shows “Horizon”, breaking the new branding
The <h1> still hard-codes “Horizon” while the logo/alt text switched to “Fundilla”. That will confuse users and quickly looks like an oversight.
- <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Horizon</h1>
+ <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Fundilla</h1>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| src="/icons/logo.png" | |
| width={34} | |
| height={34} | |
| alt="Horizon logo" | |
| alt="Fundilla" | |
| /> | |
| <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Horizon</h1> | |
| </Link> | |
| src="/icons/logo.png" | |
| width={34} | |
| height={34} | |
| alt="Fundilla" | |
| /> | |
| <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Fundilla</h1> | |
| </Link> |
🤖 Prompt for AI Agents
In components/MobileNav.tsx around lines 37 to 43, the <h1> element still
hardcodes the text "Horizon" which conflicts with the updated branding to
"Fundilla". Update the <h1> text content to "Fundilla" to match the logo alt
text and maintain consistent branding.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hlo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sujitgabbar220-debug Hello! 👋
Is there anything specific you'd like me to help you with regarding this pull request or the branding consistency issue I flagged in the MobileNav component?
| src="/icons/logo.png" | ||
| width={34} | ||
| height={34} | ||
| alt="Horizon logo" | ||
| alt="Fundilla logo" | ||
| className="size-[24px] max-xl:size-14" | ||
| /> | ||
| <h1 className="sidebar-logo">Horizon</h1> | ||
| <h1 className="sidebar-logo">Fundilar</h1> | ||
| </Link> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent brand spellings (“Fundilla” vs “Fundilar”)
The image alt says “Fundilla logo” but the heading says “Fundilar”. Decide on a single canonical brand name and use it everywhere to avoid user-visible typos.
🤖 Prompt for AI Agents
In components/Sidebar.tsx around lines 19 to 26, the brand name is
inconsistently spelled as "Fundilla" in the image alt text and "Fundilar" in the
heading. Choose the correct brand name and update both the alt attribute of the
image and the text inside the h1 element to use the same spelling consistently.
| src="/icons/logo-light.png" | ||
| width={140} | ||
| height={90} | ||
| alt="Fundilla" | ||
| /> | ||
| <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Horizon</h1> | ||
| {/* <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Fundillar</h1> */} | ||
| </Link> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Multiple issues with the header block
- Brand spelling again differs (“Fundilla” in alt, commented “Fundillar”).
- Dead commented code clutters the component.
- 140 × 90 logo might blow up the layout on mobile; all other places keep the logo ~34 px.
Consider:
- <Image
- src="/icons/logo-light.png"
- width={140}
- height={90}
- alt="Fundilla"
- />
- {/* <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Fundillar</h1> */}
+ <Image
+ src="/icons/logo-light.png"
+ width={34}
+ height={34}
+ alt="Fundilla logo"
+ />
+ <h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Fundilla</h1>🤖 Prompt for AI Agents
In components/AuthForm.tsx around lines 90 to 96, the header block has
inconsistent brand spelling between the alt text ("Fundilla") and the
commented-out heading ("Fundillar"), contains dead commented code, and uses a
large 140x90 logo size that may disrupt mobile layout. Fix this by unifying the
brand spelling consistently across alt text and any visible text, removing the
commented-out heading entirely to clean up the code, and resizing the logo to
approximately 34 pixels in height to match other instances and maintain
responsive design.
| "dwolla-v2": "^3.4.0", | ||
| "lucide-react": "^0.374.0", | ||
| "next": "14.2.3", | ||
| "next": "^14.2.29", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Loosening Next.js version may introduce breaking changes
Changing next to ^14.2.29 allows any 14.x minor/patch release. While usually safe, a minor bump can still ship breaking behaviour. Pin to the exact version or add a controlled update policy.
🤖 Prompt for AI Agents
In package.json at line 25, the Next.js version is specified with a caret (^),
allowing automatic updates to any 14.x minor or patch release, which may
introduce breaking changes. To fix this, change the version to the exact version
"14.2.29" without the caret to pin it precisely, or implement a controlled
update policy to manage version upgrades safely.
| #APPWRITE | ||
| NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1 | ||
| NEXT_PUBLIC_APPWRITE_PROJECT=662cd3d0000d7d095714 | ||
| APPWRITE_DATABASE_ID=662cd599000b133bfcd3 | ||
| APPWRITE_USER_COLLECTION_ID=662cd5bb002792396b02 | ||
| APPWRITE_BANK_COLLECTION_ID=662cd610000e0e283eb4 | ||
| APPWRITE_TRANSACTION_COLLECTION_ID=662cd5fb000ceb06e8a6 | ||
| NEXT_APPWRITE_KEY=c78d74bfcb9364a868b588056cdb00bd7328ad2629f9d97682a877f8662776289426ab7a5dcc1ca6cb4c6946b5a341ca73cd09f18dd0c01a11454aa75cf85a3cc4b0cc5f5cbc8872368aab3d24a13ff35ca45fac080bf0d8f575d84dec72ad0446b13752978c44d379ca85bdb690b7aa0523b44d9058a6da51c474ba54aef2d7 | ||
| NEXT_PUBLIC_APPWRITE_PROJECT=682ff311003bf6d4cdfc | ||
| APPWRITE_DATABASE_ID=682ff352001a95f2126c | ||
| APPWRITE_USER_COLLECTION_ID=68300f260032a585c91b | ||
| APPWRITE_BANK_COLLECTION_ID=68300f9f0001d878cde3 | ||
| APPWRITE_TRANSACTION_COLLECTION_ID=682ff3d1001f7fc0be59 | ||
| NEXT_APPWRITE_KEY=standard_654ea0773601948c1f65be78cd3cc97f34309ae701e533cef6b89450b648ee4b4536c06fc4acc904e87256db46660afac2fdc759f555d12d803e83cd8590cea7c2cfda5b0b9786c5983f7e9e03c5899d84ff52dc6e17bcc3f01484cb8e2407debe8945b9fe702afe40344c66b2ea1938defcc52a4651bce6d77fb6e38809e674 | ||
|
|
||
| #PLAID | ||
| PLAID_CLIENT_ID=662e1e5fdca064001c3e0086 | ||
| PLAID_SECRET=be405988983be57fe34bef8e9038b3 | ||
| PLAID_CLIENT_ID=683351e645aadd0023b5cec4 | ||
| PLAID_SECRET=93f87ee12cbbbaf3c7f08a206913b5 | ||
| PLAID_ENV=sandbox | ||
| PLAID_PRODUCTS=auth,transactions,identity | ||
| PLAID_COUNTRY_CODES=US,CA | ||
|
|
||
| #DWOLLA | ||
| DWOLLA_KEY=qAN5xkFYOSQeUNpN7GSPcGPHH8nSpVrPKSL8Ye5mSSP5AzddNt | ||
| DWOLLA_SECRET=FI50i6NbUQ90106Bt1n9bH6aCNWhcs8Rliy7VRqrXgNbKtLy00 | ||
| DWOLLA_KEY=bmAjEwHJYNTpW1HiHXPXsfQKeEyiRhvIIvZFmvHMLT6iZCcASY | ||
| DWOLLA_SECRET=2SlZNMBI0t9PkpbukqRHNF7wWoMdcdSRPW3cIEcT5Z4LXFJrDs | ||
| DWOLLA_BASE_URL=https://api-sandbox.dwolla.com |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hard-coded credentials committed – immediate security leak
Real Appwrite, Plaid and Dwolla secrets are now in the repo.
Even though .env was added to .gitignore, committing it once exposes the keys permanently (git history & any fork/clone). Rotate every key that appears here and delete the file from the repo history (git filter-repo / BFG) before merging.
Replace the committed file with a public template and keep real secrets only in local/CI vaults:
-#APPWRITE
-NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
-NEXT_PUBLIC_APPWRITE_PROJECT=682ff311003bf6d4cdfc
-APPWRITE_DATABASE_ID=682ff352001a95f2126c
-APPWRITE_USER_COLLECTION_ID=68300f260032a585c91b
-APPWRITE_BANK_COLLECTION_ID=68300f9f0001d878cde3
-APPWRITE_TRANSACTION_COLLECTION_ID=682ff3d1001f7fc0be59
-NEXT_APPWRITE_KEY=standard_654ea0773601948c1f65be78cd3cc97f34309ae701e533cef6b89450b648ee4b4536c06fc4acc904e87256db46660afac2fdc759f555d12d803e83cd8590cea7c2cfda5b0b9786c5983f7e9e03c5899d84ff52dc6e17bcc3f01484cb8e2407debe8945b9fe702afe40344c66b2ea1938defcc52a4651bce6d77fb6e38809e674
-
-#PLAID
-PLAID_CLIENT_ID=683351e645aadd0023b5cec4
-PLAID_SECRET=93f87ee12cbbbaf3c7f08a206913b5
-
-#DWOLLA
-DWOLLA_KEY=bmAjEwHJYNTpW1HiHXPXsfQKeEyiRhvIIvZFmvHMLT6iZCcASY
-DWOLLA_SECRET=2SlZNMBI0t9PkpbukqRHNF7wWoMdcdSRPW3cIEcT5Z4LXFJrDs
+### EXAMPLE ONLY – DO NOT COMMIT REAL SECRETS ###
+#APPWRITE
+NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
+NEXT_PUBLIC_APPWRITE_PROJECT=<project_id>
+APPWRITE_DATABASE_ID=<db_id>
+APPWRITE_USER_COLLECTION_ID=<collection_id>
+APPWRITE_BANK_COLLECTION_ID=<collection_id>
+APPWRITE_TRANSACTION_COLLECTION_ID=<collection_id>
+NEXT_APPWRITE_KEY=<server_key>
+
+#PLAID
+PLAID_CLIENT_ID=<client_id>
+PLAID_SECRET=<secret>
+
+#DWOLLA
+DWOLLA_KEY=<key>
+DWOLLA_SECRET=<secret>Action items:
- Revoke & regenerate all exposed keys immediately.
- Purge the file from git history.
- Commit a
*.env.example(placeholders) only. - Rely on vault/CI secrets injection for deployments.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #APPWRITE | |
| NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1 | |
| NEXT_PUBLIC_APPWRITE_PROJECT=662cd3d0000d7d095714 | |
| APPWRITE_DATABASE_ID=662cd599000b133bfcd3 | |
| APPWRITE_USER_COLLECTION_ID=662cd5bb002792396b02 | |
| APPWRITE_BANK_COLLECTION_ID=662cd610000e0e283eb4 | |
| APPWRITE_TRANSACTION_COLLECTION_ID=662cd5fb000ceb06e8a6 | |
| NEXT_APPWRITE_KEY=c78d74bfcb9364a868b588056cdb00bd7328ad2629f9d97682a877f8662776289426ab7a5dcc1ca6cb4c6946b5a341ca73cd09f18dd0c01a11454aa75cf85a3cc4b0cc5f5cbc8872368aab3d24a13ff35ca45fac080bf0d8f575d84dec72ad0446b13752978c44d379ca85bdb690b7aa0523b44d9058a6da51c474ba54aef2d7 | |
| NEXT_PUBLIC_APPWRITE_PROJECT=682ff311003bf6d4cdfc | |
| APPWRITE_DATABASE_ID=682ff352001a95f2126c | |
| APPWRITE_USER_COLLECTION_ID=68300f260032a585c91b | |
| APPWRITE_BANK_COLLECTION_ID=68300f9f0001d878cde3 | |
| APPWRITE_TRANSACTION_COLLECTION_ID=682ff3d1001f7fc0be59 | |
| NEXT_APPWRITE_KEY=standard_654ea0773601948c1f65be78cd3cc97f34309ae701e533cef6b89450b648ee4b4536c06fc4acc904e87256db46660afac2fdc759f555d12d803e83cd8590cea7c2cfda5b0b9786c5983f7e9e03c5899d84ff52dc6e17bcc3f01484cb8e2407debe8945b9fe702afe40344c66b2ea1938defcc52a4651bce6d77fb6e38809e674 | |
| #PLAID | |
| PLAID_CLIENT_ID=662e1e5fdca064001c3e0086 | |
| PLAID_SECRET=be405988983be57fe34bef8e9038b3 | |
| PLAID_CLIENT_ID=683351e645aadd0023b5cec4 | |
| PLAID_SECRET=93f87ee12cbbbaf3c7f08a206913b5 | |
| PLAID_ENV=sandbox | |
| PLAID_PRODUCTS=auth,transactions,identity | |
| PLAID_COUNTRY_CODES=US,CA | |
| #DWOLLA | |
| DWOLLA_KEY=qAN5xkFYOSQeUNpN7GSPcGPHH8nSpVrPKSL8Ye5mSSP5AzddNt | |
| DWOLLA_SECRET=FI50i6NbUQ90106Bt1n9bH6aCNWhcs8Rliy7VRqrXgNbKtLy00 | |
| DWOLLA_KEY=bmAjEwHJYNTpW1HiHXPXsfQKeEyiRhvIIvZFmvHMLT6iZCcASY | |
| DWOLLA_SECRET=2SlZNMBI0t9PkpbukqRHNF7wWoMdcdSRPW3cIEcT5Z4LXFJrDs | |
| DWOLLA_BASE_URL=https://api-sandbox.dwolla.com | |
| ### EXAMPLE ONLY – DO NOT COMMIT REAL SECRETS ### | |
| #APPWRITE | |
| NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1 | |
| NEXT_PUBLIC_APPWRITE_PROJECT=<project_id> | |
| APPWRITE_DATABASE_ID=<db_id> | |
| APPWRITE_USER_COLLECTION_ID=<collection_id> | |
| APPWRITE_BANK_COLLECTION_ID=<collection_id> | |
| APPWRITE_TRANSACTION_COLLECTION_ID=<collection_id> | |
| NEXT_APPWRITE_KEY=<server_key> | |
| #PLAID | |
| PLAID_CLIENT_ID=<client_id> | |
| PLAID_SECRET=<secret> | |
| PLAID_ENV=sandbox | |
| PLAID_PRODUCTS=auth,transactions,identity | |
| PLAID_COUNTRY_CODES=US,CA | |
| #DWOLLA | |
| DWOLLA_KEY=<key> | |
| DWOLLA_SECRET=<secret> | |
| DWOLLA_BASE_URL=https://api-sandbox.dwolla.com |
🤖 Prompt for AI Agents
In the .env file from lines 4 to 23, real sensitive credentials for Appwrite,
Plaid, and Dwolla are hard-coded and committed, causing a security leak.
Immediately revoke and regenerate all exposed keys, then remove the .env file
from the git history using tools like git filter-repo or BFG. Replace the
committed .env with a .env.example file containing placeholder values only, and
ensure real secrets are managed securely via local environment variables or
CI/CD vaults without committing them to the repository.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
8816891687
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sujitgabbar220-debug I see you've provided the number "8816891687" but I'm not sure what this refers to. Could you clarify what this number represents? Is it:
- A phone number for contact regarding the security issue?
- An incident/ticket ID?
- Some other reference number?
Meanwhile, I want to emphasize that the security issue with the exposed credentials in the .env file is critical and needs immediate attention. The API keys for Appwrite, Plaid, and Dwolla that are currently committed to the repository should be:
- Revoked immediately from their respective service dashboards
- Regenerated with new credentials
- Removed from git history using tools like
git filter-repo - Replaced with a template file containing placeholder values
Please let me know what the number refers to so I can assist you appropriately with both that matter and the security remediation.
redefined submit function in authform and added error handling to sig…
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
lib/actions/user.actions.ts (1)
56-128: Use the correct Appwrite user‐deletion methodThe
deleteIdentity()call only removes a login provider, not the user record. On failure you need to delete the entire account. Update the cleanup to call the properdelete()endpoint (or, if using the Users service,users.delete(...)) instead:• lib/actions/user.actions.ts line 116
– Replace
ts await account.deleteIdentity(newUserAccount.$id);
– With one of:
ts await account.delete(newUserAccount.$id);
or, if you’re using the Users service:
ts const users = new Users(client); await users.delete(newUserAccount.$id);This ensures the full user record is removed on signup rollback.
♻️ Duplicate comments (1)
components/AuthForm.tsx (1)
113-118: Previous review comments still apply to this codeThe issues previously identified remain unaddressed:
- Brand name inconsistency ("Fundilla" vs "Fundillar")
- Dead commented code cluttering the component
- Oversized logo (140×90) that may disrupt mobile layouts
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (2)
components/AuthForm.tsx(2 hunks)lib/actions/user.actions.ts(3 hunks)
🧬 Code Graph Analysis (2)
components/AuthForm.tsx (1)
lib/actions/user.actions.ts (2)
signUp(56-128)signIn(35-53)
lib/actions/user.actions.ts (3)
lib/appwrite.ts (3)
account(20-22)account(33-35)database(36-38)lib/actions/dwolla.actions.ts (1)
createDwollaCustomer(54-64)lib/utils.ts (2)
extractCustomerIdFromUrl(172-180)parseStringify(79-79)
🧰 Additional context used
🧬 Code Graph Analysis (2)
components/AuthForm.tsx (1)
lib/actions/user.actions.ts (2)
signUp(56-128)signIn(35-53)
lib/actions/user.actions.ts (3)
lib/appwrite.ts (3)
account(20-22)account(33-35)database(36-38)lib/actions/dwolla.actions.ts (1)
createDwollaCustomer(54-64)lib/utils.ts (2)
extractCustomerIdFromUrl(172-180)parseStringify(79-79)
🔇 Additional comments (1)
lib/actions/user.actions.ts (1)
163-163: Good addition of transaction accessAdding the 'transactions' product enables the application to retrieve transaction data from linked accounts, which is essential for banking functionality.
| const onSubmit = async (data: z.infer<typeof formSchema>) => { | ||
| setIsLoading(true); | ||
|
|
||
| try { | ||
| if(type === 'sign-up') { | ||
| const userData = { | ||
| firstName: data.firstName!, | ||
| lastName: data.lastName!, | ||
| address1: data.address1!, | ||
| city: data.city!, | ||
| state: data.state!, | ||
| postalCode: data.postalCode!, | ||
| dateOfBirth: data.dateOfBirth!, | ||
| ssn: data.ssn!, | ||
| email: data.email, | ||
| password: data.password | ||
| } | ||
|
|
||
| try { | ||
| // Sign up with Appwrite & create plaid token | ||
| const newUser = await signUp(userData); | ||
|
|
||
| if(type === 'sign-up') { | ||
| const userData = { | ||
| firstName: data.firstName!, | ||
| lastName: data.lastName!, | ||
| address1: data.address1!, | ||
| city: data.city!, | ||
| state: data.state!, | ||
| postalCode: data.postalCode!, | ||
| dateOfBirth: data.dateOfBirth!, | ||
| ssn: data.ssn!, | ||
| email: data.email, | ||
| password: data.password | ||
| } | ||
|
|
||
| const newUser = await signUp(userData); | ||
|
|
||
| if (newUser) { | ||
| setUser(newUser); | ||
| } else { | ||
| throw new Error('Failed to create user'); | ||
| } | ||
| } catch (signUpError) { | ||
| console.error('Sign up failed:', signUpError); | ||
| // Show error message to user | ||
| alert('Sign up failed. Please try again.'); | ||
| return; | ||
| } | ||
| } | ||
|
|
||
| if(type === 'sign-in') { | ||
| const response = await signIn({ | ||
| email: data.email, | ||
| password: data.password, | ||
| }) | ||
|
|
||
| if(response) router.push('/') | ||
| if(type === 'sign-in') { | ||
| try { | ||
| const response = await signIn({ | ||
| email: data.email, | ||
| password: data.password, | ||
| }); | ||
|
|
||
| if(response) { | ||
| router.push('/'); | ||
| } else { | ||
| throw new Error('Sign in failed'); | ||
| } | ||
| } catch (error) { | ||
| console.log(error); | ||
| } finally { | ||
| setIsLoading(false); | ||
| } catch (signInError) { | ||
| console.error('Sign in failed:', signInError); | ||
| // Show error message to user | ||
| alert('Sign in failed. Please check your credentials.'); | ||
| return; | ||
| } | ||
| } | ||
| } catch (error) { | ||
| console.error('Authentication error:', error); | ||
| alert('An error occurred. Please try again.'); | ||
| } finally { | ||
| setIsLoading(false); | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Replace alert() with proper UI notifications
The error handling structure is much improved, but using alert() for error messages provides poor UX. Consider using a toast notification library or custom error components for better user experience.
- alert('Sign up failed. Please try again.');
+ // Use a toast notification or error state
+ toast.error('Sign up failed. Please try again.');- alert('Sign in failed. Please check your credentials.');
+ // Use a toast notification or error state
+ toast.error('Sign in failed. Please check your credentials.');Additionally, the outer catch block (lines 100-103) appears redundant since all error paths are already handled in the nested try-catch blocks. Consider removing it to simplify the code structure.
🤖 Prompt for AI Agents
In components/AuthForm.tsx from lines 47 to 106, replace all alert() calls used
for error messages with a proper UI notification system such as a toast
notification library or custom error components to improve user experience.
Also, remove the outer catch block around lines 100-103 since all errors are
already handled in the nested try-catch blocks, simplifying the code structure.
|
Hello how are you
…On Sat, Sep 13, 2025, 8:44 PM coderabbitai[bot] ***@***.***> wrote:
***@***.***[bot]* commented on this pull request.
------------------------------
In .env
<#103 (comment)>:
> #APPWRITE
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
-NEXT_PUBLIC_APPWRITE_PROJECT=662cd3d0000d7d095714
-APPWRITE_DATABASE_ID=662cd599000b133bfcd3
-APPWRITE_USER_COLLECTION_ID=662cd5bb002792396b02
-APPWRITE_BANK_COLLECTION_ID=662cd610000e0e283eb4
-APPWRITE_TRANSACTION_COLLECTION_ID=662cd5fb000ceb06e8a6
-NEXT_APPWRITE_KEY=c78d74bfcb9364a868b588056cdb00bd7328ad2629f9d97682a877f8662776289426ab7a5dcc1ca6cb4c6946b5a341ca73cd09f18dd0c01a11454aa75cf85a3cc4b0cc5f5cbc8872368aab3d24a13ff35ca45fac080bf0d8f575d84dec72ad0446b13752978c44d379ca85bdb690b7aa0523b44d9058a6da51c474ba54aef2d7
+NEXT_PUBLIC_APPWRITE_PROJECT=682ff311003bf6d4cdfc
+APPWRITE_DATABASE_ID=682ff352001a95f2126c
+APPWRITE_USER_COLLECTION_ID=68300f260032a585c91b
+APPWRITE_BANK_COLLECTION_ID=68300f9f0001d878cde3
+APPWRITE_TRANSACTION_COLLECTION_ID=682ff3d1001f7fc0be59
+NEXT_APPWRITE_KEY=standard_654ea0773601948c1f65be78cd3cc97f34309ae701e533cef6b89450b648ee4b4536c06fc4acc904e87256db46660afac2fdc759f555d12d803e83cd8590cea7c2cfda5b0b9786c5983f7e9e03c5899d84ff52dc6e17bcc3f01484cb8e2407debe8945b9fe702afe40344c66b2ea1938defcc52a4651bce6d77fb6e38809e674 <https://cloud.appwrite.io/v1-NEXT_PUBLIC_APPWRITE_PROJECT=662cd3d0000d7d095714-APPWRITE_DATABASE_ID=662cd599000b133bfcd3-APPWRITE_USER_COLLECTION_ID=662cd5bb002792396b02-APPWRITE_BANK_COLLECTION_ID=662cd610000e0e283eb4-APPWRITE_TRANSACTION_COLLECTION_ID=662cd5fb000ceb06e8a6-NEXT_APPWRITE_KEY=c78d74bfcb9364a868b588056cdb00bd7328ad2629f9d97682a877f8662776289426ab7a5dcc1ca6cb4c6946b5a341ca73cd09f18dd0c01a11454aa75cf85a3cc4b0cc5f5cbc8872368aab3d24a13ff35ca45fac080bf0d8f575d84dec72ad0446b13752978c44d379ca85bdb690b7aa0523b44d9058a6da51c474ba54aef2d7+NEXT_PUBLIC_APPWRITE_PROJECT=682ff311003bf6d4cdfc+APPWRITE_DATABASE_ID=682ff352001a95f2126c+APPWRITE_USER_COLLECTION_ID=68300f260032a585c91b+APPWRITE_BANK_COLLECTION_ID=68300f9f0001d878cde3+APPWRITE_TRANSACTION_COLLECTION_ID=682ff3d1001f7fc0be59+NEXT_APPWRITE_KEY=standard_654ea0773601948c1f65be78cd3cc97f34309ae701e533cef6b89450b648ee4b4536c06fc4acc904e87256db46660afac2fdc759f555d12d803e83cd8590cea7c2cfda5b0b9786c5983f7e9e03c5899d84ff52dc6e17bcc3f01484cb8e2407debe8945b9fe702afe40344c66b2ea1938defcc52a4651bce6d77fb6e38809e674>
#PLAID
-PLAID_CLIENT_ID=662e1e5fdca064001c3e0086
-PLAID_SECRET=be405988983be57fe34bef8e9038b3
+PLAID_CLIENT_ID=683351e645aadd0023b5cec4
+PLAID_SECRET=93f87ee12cbbbaf3c7f08a206913b5
PLAID_ENV=sandbox
PLAID_PRODUCTS=auth,transactions,identity
PLAID_COUNTRY_CODES=US,CA
#DWOLLA
-DWOLLA_KEY=qAN5xkFYOSQeUNpN7GSPcGPHH8nSpVrPKSL8Ye5mSSP5AzddNt
-DWOLLA_SECRET=FI50i6NbUQ90106Bt1n9bH6aCNWhcs8Rliy7VRqrXgNbKtLy00
+DWOLLA_KEY=bmAjEwHJYNTpW1HiHXPXsfQKeEyiRhvIIvZFmvHMLT6iZCcASY
+DWOLLA_SECRET=2SlZNMBI0t9PkpbukqRHNF7wWoMdcdSRPW3cIEcT5Z4LXFJrDs
DWOLLA_BASE_URL=https://api-sandbox.dwolla.com
@sujitgabbar220-debug <https://github.com/sujitgabbar220-debug> I see
you've provided the number "8816891687" but I'm not sure what this refers
to. Could you clarify what this number represents? Is it:
- A phone number for contact regarding the security issue?
- An incident/ticket ID?
- Some other reference number?
Meanwhile, I want to emphasize that the security issue with the exposed
credentials in the .env file is critical and needs immediate attention.
The API keys for Appwrite, Plaid, and Dwolla that are currently committed
to the repository should be:
1. *Revoked immediately* from their respective service dashboards
2. *Regenerated* with new credentials
3. *Removed* from git history using tools like git filter-repo
4. *Replaced* with a template file containing placeholder values
Please let me know what the number refers to so I can assist you
appropriately with both that matter and the security remediation.
—
Reply to this email directly, view it on GitHub
<#103 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BXKUHOXHLFDYOJTNFMHZSNT3SQYEJAVCNFSM6AAAAACAQZF5JKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTEMRQHE4DEMZWGE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
Hacking sika do
…On Sat, Sep 13, 2025, 8:45 PM Sujit Gabbar ***@***.***> wrote:
Hello how are you
On Sat, Sep 13, 2025, 8:44 PM coderabbitai[bot] ***@***.***>
wrote:
> ***@***.***[bot]* commented on this pull request.
> ------------------------------
>
> In .env
> <#103 (comment)>
> :
>
> > #APPWRITE
> NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
> -NEXT_PUBLIC_APPWRITE_PROJECT=662cd3d0000d7d095714
> -APPWRITE_DATABASE_ID=662cd599000b133bfcd3
> -APPWRITE_USER_COLLECTION_ID=662cd5bb002792396b02
> -APPWRITE_BANK_COLLECTION_ID=662cd610000e0e283eb4
> -APPWRITE_TRANSACTION_COLLECTION_ID=662cd5fb000ceb06e8a6
> -NEXT_APPWRITE_KEY=c78d74bfcb9364a868b588056cdb00bd7328ad2629f9d97682a877f8662776289426ab7a5dcc1ca6cb4c6946b5a341ca73cd09f18dd0c01a11454aa75cf85a3cc4b0cc5f5cbc8872368aab3d24a13ff35ca45fac080bf0d8f575d84dec72ad0446b13752978c44d379ca85bdb690b7aa0523b44d9058a6da51c474ba54aef2d7
> +NEXT_PUBLIC_APPWRITE_PROJECT=682ff311003bf6d4cdfc
> +APPWRITE_DATABASE_ID=682ff352001a95f2126c
> +APPWRITE_USER_COLLECTION_ID=68300f260032a585c91b
> +APPWRITE_BANK_COLLECTION_ID=68300f9f0001d878cde3
> +APPWRITE_TRANSACTION_COLLECTION_ID=682ff3d1001f7fc0be59
> +NEXT_APPWRITE_KEY=standard_654ea0773601948c1f65be78cd3cc97f34309ae701e533cef6b89450b648ee4b4536c06fc4acc904e87256db46660afac2fdc759f555d12d803e83cd8590cea7c2cfda5b0b9786c5983f7e9e03c5899d84ff52dc6e17bcc3f01484cb8e2407debe8945b9fe702afe40344c66b2ea1938defcc52a4651bce6d77fb6e38809e674 <https://cloud.appwrite.io/v1-NEXT_PUBLIC_APPWRITE_PROJECT=662cd3d0000d7d095714-APPWRITE_DATABASE_ID=662cd599000b133bfcd3-APPWRITE_USER_COLLECTION_ID=662cd5bb002792396b02-APPWRITE_BANK_COLLECTION_ID=662cd610000e0e283eb4-APPWRITE_TRANSACTION_COLLECTION_ID=662cd5fb000ceb06e8a6-NEXT_APPWRITE_KEY=c78d74bfcb9364a868b588056cdb00bd7328ad2629f9d97682a877f8662776289426ab7a5dcc1ca6cb4c6946b5a341ca73cd09f18dd0c01a11454aa75cf85a3cc4b0cc5f5cbc8872368aab3d24a13ff35ca45fac080bf0d8f575d84dec72ad0446b13752978c44d379ca85bdb690b7aa0523b44d9058a6da51c474ba54aef2d7+NEXT_PUBLIC_APPWRITE_PROJECT=682ff311003bf6d4cdfc+APPWRITE_DATABASE_ID=682ff352001a95f2126c+APPWRITE_USER_COLLECTION_ID=68300f260032a585c91b+APPWRITE_BANK_COLLECTION_ID=68300f9f0001d878cde3+APPWRITE_TRANSACTION_COLLECTION_ID=682ff3d1001f7fc0be59+NEXT_APPWRITE_KEY=standard_654ea0773601948c1f65be78cd3cc97f34309ae701e533cef6b89450b648ee4b4536c06fc4acc904e87256db46660afac2fdc759f555d12d803e83cd8590cea7c2cfda5b0b9786c5983f7e9e03c5899d84ff52dc6e17bcc3f01484cb8e2407debe8945b9fe702afe40344c66b2ea1938defcc52a4651bce6d77fb6e38809e674>
>
> #PLAID
> -PLAID_CLIENT_ID=662e1e5fdca064001c3e0086
> -PLAID_SECRET=be405988983be57fe34bef8e9038b3
> +PLAID_CLIENT_ID=683351e645aadd0023b5cec4
> +PLAID_SECRET=93f87ee12cbbbaf3c7f08a206913b5
> PLAID_ENV=sandbox
> PLAID_PRODUCTS=auth,transactions,identity
> PLAID_COUNTRY_CODES=US,CA
>
> #DWOLLA
> -DWOLLA_KEY=qAN5xkFYOSQeUNpN7GSPcGPHH8nSpVrPKSL8Ye5mSSP5AzddNt
> -DWOLLA_SECRET=FI50i6NbUQ90106Bt1n9bH6aCNWhcs8Rliy7VRqrXgNbKtLy00
> +DWOLLA_KEY=bmAjEwHJYNTpW1HiHXPXsfQKeEyiRhvIIvZFmvHMLT6iZCcASY
> +DWOLLA_SECRET=2SlZNMBI0t9PkpbukqRHNF7wWoMdcdSRPW3cIEcT5Z4LXFJrDs
> DWOLLA_BASE_URL=https://api-sandbox.dwolla.com
>
> @sujitgabbar220-debug <https://github.com/sujitgabbar220-debug> I see
> you've provided the number "8816891687" but I'm not sure what this refers
> to. Could you clarify what this number represents? Is it:
>
> - A phone number for contact regarding the security issue?
> - An incident/ticket ID?
> - Some other reference number?
>
> Meanwhile, I want to emphasize that the security issue with the exposed
> credentials in the .env file is critical and needs immediate attention.
> The API keys for Appwrite, Plaid, and Dwolla that are currently committed
> to the repository should be:
>
> 1. *Revoked immediately* from their respective service dashboards
> 2. *Regenerated* with new credentials
> 3. *Removed* from git history using tools like git filter-repo
> 4. *Replaced* with a template file containing placeholder values
>
> Please let me know what the number refers to so I can assist you
> appropriately with both that matter and the security remediation.
>
> —
> Reply to this email directly, view it on GitHub
> <#103 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/BXKUHOXHLFDYOJTNFMHZSNT3SQYEJAVCNFSM6AAAAACAQZF5JKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTEMRQHE4DEMZWGE>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
| DWOLLA_KEY=qAN5xkFYOSQeUNpN7GSPcGPHH8nSpVrPKSL8Ye5mSSP5AzddNt | ||
| DWOLLA_SECRET=FI50i6NbUQ90106Bt1n9bH6aCNWhcs8Rliy7VRqrXgNbKtLy00 | ||
| DWOLLA_KEY=bmAjEwHJYNTpW1HiHXPXsfQKeEyiRhvIIvZFmvHMLT6iZCcASY | ||
| DWOLLA_SECRET=2SlZNMBI0t9PkpbukqRHNF7wWoMdcdSRPW3cIEcT5Z4LXFJrDs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello
| #APPWRITE | ||
| NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1 | ||
| NEXT_PUBLIC_APPWRITE_PROJECT=662cd3d0000d7d095714 | ||
| APPWRITE_DATABASE_ID=662cd599000b133bfcd3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello
|
Hello
…On Sat, Sep 13, 2025, 8:50 PM coderabbitai[bot] ***@***.***> wrote:
***@***.***[bot]* commented on this pull request.
------------------------------
In components/MobileNav.tsx
<#103 (comment)>:
> + src="/icons/logo.png"
width={34}
height={34}
- alt="Horizon logo"
+ alt="Fundilla"
/>
<h1 className="text-26 font-ibm-plex-serif font-bold text-black-1">Horizon</h1>
</Link>
@sujitgabbar220-debug <https://github.com/sujitgabbar220-debug> Hello! 👋
Is there anything specific you'd like me to help you with regarding this
pull request or the branding consistency issue I flagged in the MobileNav
component?
—
Reply to this email directly, view it on GitHub
<#103 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BXKUHOTSD33MPA3MLORCQFL3SQY2LAVCNFSM6AAAAACAQZF5JKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTEMRQHE4DONZYGA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Summary by CodeRabbit
Style
Chores
.envto.gitignoreto enhance security.Documentation
Bug Fixes