Code Monkey home page Code Monkey logo

maybe's Introduction

dashboard_mockup (Note: The image above is a mockup of what we're working towards. We're rapidly approaching the functionality shown, but not all of the parts are ready just yet.)

Maybe: The OS for your personal finances

Get involved: DiscordWebsiteIssues

If you're looking for the previous React codebase, you can find it at maybe-finance/maybe-archive.

Backstory

We spent the better part of 2021/2022 building a personal finance + wealth management app called, Maybe. Very full-featured, including an "Ask an Advisor" feature which connected users with an actual CFP/CFA to help them with their finances (all included in your subscription).

The business end of things didn't work out, and so we shut things down mid-2023.

We spent the better part of $1,000,000 building the app (employees + contractors, data providers/services, infrastructure, etc.).

We're now reviving the product as a fully open-source project. The goal is to let you run the app yourself, for free, and use it to manage your own finances and eventually offer a hosted version of the app for a small monthly fee.

Self Hosting

You can find detailed setup guides for self hosting here.

One-Click Render deploy (recommended)

Deploy to Render
  1. Click the button above
  2. Follow the instructions in the Render self-hosting guide

Local Development Setup

Requirements

  • Ruby >3 (see Gemfile)
  • PostgreSQL >9.3 (ideally, latest stable version)

After cloning the repo, the basic setup commands are:

cd maybe
cp .env.example .env
bin/setup
bin/dev

# Optionally, load demo data
rake demo_data:reset

And visit http://localhost:3000 to see the app. You can use the following credentials to log in (generated by DB seed):

For further instructions, see guides below.

Multi-currency support

If you'd like multi-currency support, there are a few extra steps to follow.

  1. Sign up for an API key at Synth. It's a Maybe product and the free plan is sufficient for basic multi-currency support.
  2. Add your API key to your .env file.

Setup Guides

Dev Container (optional)

This is 100% optional and meant for devs who don't want to worry about installing requirements manually for their platform. You can follow this guide to learn more about Dev Containers.

If you run into could not connect to server errors, you may need to change your .env's DB_HOST environment variable value to db to point to the Postgres container.

Mac

Please visit our Mac dev setup guide.

Linux

Please visit our Linux dev setup guide.

Windows

Please visit our Windows dev setup guide.

Testing Emails

In development, we use letter_opener to automatically open emails in your browser. When an email sends locally, a new browser tab will open with a preview.

Contributing

Before contributing, you'll likely find it helpful to understand context and general vision/direction.

Once you've done that, please visit our contributing guide to get started!

Repo Activity

Repo Activity

Copyright & license

Maybe is distributed under an AGPLv3 license. "Maybe" is a trademark of Maybe Finance, Inc.

maybe's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

maybe's Issues

Migrate from Webpack to Vite

Is your feature request related to a problem? Please describe.
No.

Describe the solution you'd like
Update NX to use vite instead of webpack

Describe alternatives you've considered
I guess an alternative would be esbuild? I have less direct experience with other bundlers. Open to suggestions.

Additional context
Migrating here should improve the build time considerably. We made the shift at work and it saved us tons of time. This could be a good early improvement.

Remove Feedback buttons

There are a couple of components that can be removed as we don't need "native" feedback buttons at this stage.

I think it's only FeedbackDialog and FeedbackButton (and any mention of them), but would love someone who's more versed in React to dig through it and make sure there's nothing else obvious.

This includes removing NEXT_PUBLIC_ZAPIER_FEEDBACK_HOOK_URL from the .env.example file as it will no longer be needed either.

Remove LaunchDarkly/feature flags

We originally used LaunchDarkly for feature flag management. We need to remove that dependency as well as any feature-flagging functionality.

Add privacy mode to toggle asset view

Description:
I propose adding an 👁️ icon to the dashboard interface, which will allow users to toggle the visibility of numerical data for enhanced privacy. When the icon is clicked, it should hide or reveal the numbers as per the user's preference.

Preferred flow:

  1. Create a new icon element with the 👁️ icon, positioning it appropriately within the dashboard.
  2. When the 👁️ icon is clicked, check the current visibility state of the numerical data. If it's visible, hide it; if it's hidden, display it.
  3. Icon's appearance changes to reflect its current functionality, such as changing the icon's color or style to indicate whether data is visible or hidden.
  4. Finally, it'd be nice to have some tooltips or labels for the icon to inform users about its purpose.

Adding the 👁️ icon is a user-friendly way to enhance privacy and control over displayed data. It ensures that users can easily manage their data visibility preferences, thereby improving the overall user experience of the dashboard.

Manually input + automatically track US stocks

Currently we have the ability to manually enter the value of any asset (and then you can manually add updated values).

What need to add support for is entering a particular stock and then tracking the ongoing value of it.

For now, due to data sourcing, this would be restricted to the US stock market.

Data to input:

  1. Stock
  2. Number of shares
  3. Cost basis (optional)

This will be the basis for allowing users to import CSV files of their various holdings, but that specific functionality is outside the scope of this issue.

The backend essentially already supports this as we were importing this data via Plaid, but there's a current Issue to clean this up specifically for manual usage: #166

So, a lot of this (maybe most?) is essentially building the UI/UX to input the individual stocks.


Here's a rough mockup of potential UI.

CleanShot 2024-01-18 at 15 30 26@2x

  1. Select an existing manual investment account (or create a new one).
  2. Enter a stock symbol (though should probably pull from a database list of these so you can't just enter any random string)
  3. Set the purchase date, total purchase value (cost basis) and the number of shares

From there, Maybe would then track the value of that investment automatically.

Deliverables:

  1. UI for adding a manual investment account — Would use the existing "Investment" block in the modal, where you'd either pick an existing account or add a new one.
  2. UI for adding the stock — Should be a "search to select" UI for pulling from stock listing (Database: Security)
  3. Creating the appropriate "transaction" for adding the stock.
  4. UI for removing/selling the stock
  5. Create the appropriate "transaction" for removing the stock.

Bounty

There is a $250 bounty for this.

Convert Sidekiq to GoodJob + ActiveJob

In an effort to reduce dependencies and make it as easy as possible to get up and running, we should convert Sidekiq usage to GoodJob (through ActiveJob).

This will remove the need for Redis AND make cron/tim-based background jobs much easier.

Migrate from Yarn 1.x to pnpm

Is your feature request related to a problem? Please describe.
Yes. This repo is currently using an outdated package manager.

Describe the solution you'd like
Yarn Classic (1.x) is ~4ish years old and needs an upgrade. The purpose of this issue is to upgrade the workspace to explore using the pnpm package manager rather than Yarn 1.x

Describe alternatives you've considered
As of now, it's best to use Yarn 1.x. We can configure package.json to explicitly use the classic version of Yarn and add some documentation as to how developers can configure Yarn to use 1.x.

Additional context
pnpm home page

Unable to Register locally

Describe the bug
When I try to register an account I get the error:

Invalid `prisma.authUser.findUnique()` invocation: The table `public.auth_user` does not exist in the current database.

To Reproduce
Steps to reproduce the behavior:

  1. Git clone the repo
  2. Follow the instructions here https://github.com/maybe-finance/maybe?tab=readme-ov-file#building-the-app
  3. Visit http://localhost:4200/register
  4. See error

Expected behavior
Signing up succesfully

Screenshots
Screenshot from 2024-01-17 15-50-31

Desktop (please complete the following information):

  • OS: Ubuntu 23.04
  • Browser Chrome
  • Version 120.0.6099.216 (Official Build) (64-bit)

Additional context

event - compiled client and server successfully in 295 ms (2806 modules)
info: [job.active] Job{queue=sync-security id=repeat:5345ac4cff0751437f6fbbe527d36e4c:1705502700000 name=sync-all-securities ts=1705502556828 data={}} {"service":"BullQueueEventHandler"}
info: Starting a postgresql pool with 13 connections. {"service":"PrismaClient","target":"quaint::pooled","timestamp":"2024-01-17T14:45:00.024Z"}
error: 
Invalid `prisma.security.findMany()` invocation:


The table `public.security` does not exist in the current database. {"service":"PrismaClient","target":"security.findMany","timestamp":"2024-01-17T14:45:00.194Z"}
error: [job.failed] Job{queue=sync-security id=repeat:5345ac4cff0751437f6fbbe527d36e4c:1705502700000 name=sync-all-securities ts=1705502556828 data={}} {"error":{"clientVersion":"5.8.0","code":"P2021","meta":{"modelName":"Security","table":"public.security"},"name":"PrismaClientKnownRequestError"},"service":"BullQueueEventHandler"}
info: [job.active] Job{queue=sync-security id=repeat:5345ac4cff0751437f6fbbe527d36e4c:1705503000000 name=sync-all-securities ts=1705502700011 data={}} {"service":"BullQueueEventHandler"}

Remove Auth0 references

Given we've now replaced Auth0, we should remove any references to it or unnecessary code.

The biggest thing there is likely the /auth0 directory.

Current build from commit 447f598 fails at yarn install

Current build from commit 447f598 fails at yarn install, lots of warnings given and critically fails here when trying to download Cypress.

Yarn version 1.22.21

Exit code: 1
Command: node index.js --exec install
Arguments:
Directory: ....
Output:
Installing Cypress (version: 12.3.0)
URL: https://download.cypress.io/desktop/12.3.0?platform=win32&arch=x64
Error: Corrupted download

Expected downloaded file to have checksum: cc3a12a75acefc49263589d63e8a815d833c8ecaae3ffce5dffb7ea32a3c6b1216358962682f7280bf1c745862446c62dd812a3d76d56f373e919c1e876f91cf
Computed checksum: 08fb9790b9705d3ebcb325a0d2aba26cc66d0b850ffb3a7329c5746de42c63c9e31c320256ff62fc0a0402b5447034af990af09eeed98ca98359176b1f9c1fba

Expected downloaded file to have size: 179037094
Computed size: 171718440

Internet connection is fine. Download always fails and anti-virus is down to allow install/stop it interferring.

How to contribute?

I think a lot of people would like to contribute to this project, including myself. Is there an established process to do so?

Remove location limitation

As referenced in #60, we need to remove the blocker for folks outside the US.

When we built Maybe we offered financial advice and as such had a LOT more regulatory stuff to account for. So, that just meant we couldn't support non-US folks.
...
The problem will still be that we have to add data sources for folks outside North America, but otherwise you should still be able to actually create an account and manually add stuff.

There are some checks during signup/onboarding where it asks for location and then if you don't select United States it shows you a message about not being supported.

We need to remove that so there's no "location" limitation.

Can not go to login page

Describe the bug
I was setup it step by step. And this app was started successfully. But when I open website, and press button "Admin login", it open an white page with error "Cannot GET /admin/login"

To Reproduce

  • Install step by step with guideline
  • Open website
  • Press button "Admin login"
    Expected behavior

Screenshots
image

image

Screenshot 2024-01-18 at 11 19 07

Desktop (please complete the following information):

  • OS: MacOS 13.1
  • Browser Microsoft Edge, Safari

Maybe Card download returns an empty file

When you try to download the Maybe Card for your profile, an empty .png with size 0 kb file is downloaded. This happens both when it is shown for the first time after creating the profile and when you try to download it from the settings page.

Get app to buildable state

Currently the app can't be successfully built.

Originally you'd run the following to get things moving...

cp .env.example .env
yarn install
yarn prisma:migrate:dev
yarn prisma:seed
yarn dev

Current roadblock happens when running yarn prisma:migrate:dev:

Error: P3006

Migration `20211203180216_security_pricing` failed to apply cleanly to the shadow database. 
Error:
db error: ERROR: extension "timescaledb" is not available
DETAIL: Could not open extension control file "/Applications/Postgres.app/Contents/Versions/15/share/postgresql/extension/timescaledb.control": No such file or directory.
HINT: The extension must first be installed on the system where PostgreSQL is running.
   0: migration_core::state::DevDiagnostic
             at migration-engine/core/src/state.rs:264

Theoretically this should be addressed in Docker, but not sure how to debug further.

Remove Intercom

As you won't need Intercom to support yourself, we don't need those bits in the app.

Show error and resend confirmation email if user unconfirmed

When a user creates an account, they're sent a link to 'confirm' their email address.

We currently allow them to access their account for 24 hours before confirming.

However, after that if they try to login and they haven't confirmed, then they won't be able to login and Devise doesn't show them an error.

So, we need to do two things...

  1. Show an error (for whatever reason, Devise doesn't or isn't triggering that)
  2. Automatically trigger send_confirmation_instructions on the user object so it resend the confirmation email

Unable to create account

I have cloned the latest repository, set the NEXTAUTH_SECRET, and followed the commands given on https://github.com/maybe-finance/maybe?tab=readme-ov-file#building-the-app

these are the following errors i have encountered

image
image

along with that, i am also unable to make account on it, it works till sign up, takes in all the details and then gives out this error

image

these are my server specifications

AWS server
ubuntu 20.04
intel cpu

all ports are open but still was inaccessible directly through the ip so used ssh tunneling to access it using localhost

Add forgot password flow

Auth0 previously provided this functionality. We'll need to do a few things to replace that, off the top of my head:

  • Update sign in page with "Forgot password?" link
  • Add forgot password UI to capture email and show confirmation once forgot password email is sent
  • UI for specifying new password after clicking link in forgot password email
  • Generate token and handle token validation for sending email and when user clicks on the link in the forgot password email
  • Update server for handling sending the emails

This is low priority for right now.

Suppress issues from missing NX_POSTMARK_API_TOKEN

When NX_POSTMARK_API_TOKEN is empty, an error is thrown:

error: uncaughtException: A valid API token must be provided.
PostmarkError: A valid API token must be provided.

We shouldn't require NX_POSTMARK_API_TOKEN and instead should just ignore any email sending when that token is missing.

Remove "Advisor' functionality

Part of Maybe's original product offering included being able to work directly with a CFP/CFA. We built an entire UI for the Advisor side as well as a whole section of the user-facing app for asking questions and conversing with your advisor.

That's not necessary at this point, so we can remove those elements.

Things that likely need to be removed...

  1. /apps/advisor — This is the advisor admin panel
  2. Database tables: advisor, conversation, conversation_advisor, conversation_note, message
  3. Configuration elements (such as ones that launch the advisor service)

Agnosticize banking imports

Right now we're pretty heavily tied to Plaid (as can be seen by multiple sidekiq jobs all having "plaid" in the name).

Ideally we create a system where we can have infinite number of connector modules (that the community itself can build as needed) that just tie in to the overall data importing/syncing system.

Add Teller as primary bank connector option along with Plaid/Finicity

The original app made extensive use of Plaid + Finicity for bank data. Unfortunately they both require enterprise contracts to make use of.

A much more human-friendly alternative is Teller. While they don't offer quite as much coverage on the bank connection front (yet), they do offer billing that's essentially free for a single user. So, this is likely the best option for a personal finance app like this that someone may run just for themselves.

https://teller.io

We have the general concept/framework of multiple data providers already in the app where data from each gets cleaned up and distilled in to more common tables.

This project would mean adding Teller as another data provider and ultimately using whichever provider there are API keys for.

Ultimately this sets the stage for adding any data provider down the road (though that specifically is outside the scope of this).

This particular issue is about getting a banking provider added ASAP so Maybe can have utility without needing Plaid/Finicity accounts.

Rough deliverables:

  1. Institution listing (for use in Institution search) — This needs to automatically update as Teller adds support for new institutions.
  2. Abstracting bank connections away from user accounts — Right now we've got hard-coded columns for Plaid/Finicity. We need to pull those out with the goal of users ultimately being able to add many different connectors.
  3. Checking account support
  4. Savings accounts support
  5. Investment account support
  6. Remove any current blocking dependencies of Plaid/Finicity — I think we've got some code in there that still relies on data sourcing from Plaid/Finicity
  7. Readme user instructions on adding Teller support (presumably just via an .env variable API key)

Note about the bounty

I've added a $500 bounty on this but want to be clear: this is a very complex task that may very well require multiple people working together on it.

We won't outright assign this issue to anyone at this point and depending on the number of people involved, there's a decent chance we'll split the bounty between contributors.

EDIT: Teller (@stevegraham) has committed another $500 to this, bringing to total to $1000!

Add instructions for Ngrok usage

For development and for local self-hosting, we're defaulting to using Ngrok for HTTPS URLs (needed for basically any external data source).

We need to add instructions on how to set up an Ngrok account with a static domain and how to set the key + domain in .env.

Relevant discussion: #66

General Yarn Install Failures and `yarn.lock` Issues on First Attempt on Ubuntu 22.04

Issue Description

Describe the bug

Running yarn install for the first time after cloning the repository results in installation failures. The errors range from generic "failed with errors" messages to specific issues like @babel/runtime@npm:^7.20.13: No candidates found. The resolution involved actions with the yarn.lock file, suggesting potential issues with outdated packages or dependencies that may no longer be available or compatible. This was specifically observed on Ubuntu 22.04 but could also affect other systems.

To Reproduce

Steps to reproduce the behavior:

  1. Clone the repository to a system running Ubuntu 22.04.
  2. Run yarn install in the project directory.
  3. Encounter an installation failure with errors, which may not explicitly mention yarn.lock.
  4. The specific error for @babel/runtime suggests an issue with resolving the correct package version.
  5. Delete the existing yarn.lock file.
  6. Create a new, empty yarn.lock file.
  7. Run yarn install again, which completes successfully after these steps.

Expected behavior

yarn install should run without issues on the first attempt after cloning the repository, without needing to manipulate the yarn.lock file.

Screenshots

Screenshot from 2024-01-17 17-10-40

Screenshot from 2024-01-17 17-10-53

Screenshot from 2024-01-17 17-11-01

Screenshot from 2024-01-17 17-11-19

Screenshot from 2024-01-17 17-11-29

Desktop:

  • OS: Ubuntu
  • Version: 22.04

Additional context

This issue might not be isolated to Ubuntu 22.04 and could potentially affect other operating systems and development environments. The problem was encountered using Yarn version 4.0.2. To provide immediate assistance to other contributors who might encounter similar problems, I am willing to create a pull request to update the README with a set of temporary instructions. These instructions will guide developers on how to handle the yarn.lock file if they face similar errors, ensuring a smoother initial setup process until a more permanent solution is implemented.

Update tests to replace Auth0

The current tests use a lot of Auth0 helpers, we'll need to rip all of that out since we've moved to NextAuth. Guide here on how to set up cypress testing with NextAuth: Testing with Cypress

As part of this we should ensure there is some basic e2e test coverage for login and registration.

Create a "setup" script

In an effort to make it as easy as possible to get up and running with Maybe, we should have a "setup" script to run.

I'm not attached to any specific method for that (and realistically don't have a lot of experience in this area), so open to suggestions.

The big things that need to happen are around database setup, specifically with rails db:setup and :migrate and then creating a read-only role.

After database setup, a read-only ai_user needs to be created:

CREATE ROLE ai_user WITH LOGIN PASSWORD 'YOUR_UNIQUE_PASSWORD';

GRANT SELECT ON balances TO ai_user;
GRANT SELECT ON accounts TO ai_user;
GRANT SELECT ON connections TO ai_user;
GRANT SELECT ON conversations TO ai_user;
GRANT SELECT ON holdings TO ai_user;
GRANT SELECT ON investment_transactions TO ai_user;
GRANT SELECT ON messages TO ai_user;
GRANT SELECT ON metrics TO ai_user;
GRANT SELECT ON securities TO ai_user;
GRANT SELECT ON security_prices TO ai_user;
GRANT SELECT ON transactions TO ai_user;

And then after that, READONLY_DATABASE_URL needs to be set to postgres://ai_user:YOUR_UNIQUE_PASSWORD@localhost/maybe_ai_development in the .env file.

Date inputs should respect users date format

Is your feature request related to a problem? Please describe.
I struggled to finish the onboarding process since I was entering my birthdate as DD/MM/YYYY instead of the MM/DD/YYYY it was expecting. I also didn't receive any validation errors and was able to continue onto the next question in the form.

Describe the solution you'd like
Date inputs should respect the users local format for dates. Some countries like the US have month first, and others such as Australia have the date first.

Additionally, the birthdate question in the on-boarding form should not let you continue if you've entered an invalid birthdate.

Can you get a tag for the pre open source version of the repository?

I'd like to see a tag added to the b500040 commit to represent the repository before any open source changes were added.

It's nice to come visit the repository at this point in the history to view the code as it was in production and to learn from what a SAAS codebase can look like.

Thanks!

Remove Agreement flows from dashboard

The original version of Maybe provided financial advice via CFP/CFAs, which required us to collect acknowledgement of a few legal agreements.

This can be removed now since we won't be providing that specific service.

You're basically looking for anything that talks about agreements, signAgreement, newestAgreement, feeAgreement, agreementType and the database columns associated with all of that.

It may be hard to thoroughly remove all of this until #16 is complete (since you won't be able to actually go through onboarding or anything associated with that), but I'm not opposed to a first pass being taken at this knowing some bits may be missed initially.

Add global support to real estate addition

CleanShot 2024-01-16 at 09 41 22@2x

Currently the "Add real estate" modal is locked to the US, but there's no functional reason to keep it this way.

We should allow any country via a dropdown listing of all countries.

Remove AWS dependencies

There are slew of AWS-specific bits...so many that I honestly don't recall what all they were used for. But ultimately we need to make this platform-agnostic so that AWS isn't a requirement.

How to track my stock portfolio

I just cloned the repo and launched the app.
I cannot understand how to add stocks to track my portfolio.
Is that feasible? Or does it only work with US institution integrations?
( I live in the UK, I want to manually add my stocks and just track their prices for my portfolio net worth )

Centralize Postmark env variables to .env file

Postmark is already used pretty extensively throughout the app for email sending, however the environment variables for it are sprinkled all over the app.

We need to centralize all of those in to the main .env file and include them as part of setup.

We should be able to continue using it as the main email provider as they have a free plan (for up to 100 emails).

DatePicker.spec.tsx 'should be able to open modal and select a date' test failing because of faulty test setup.

Describe the bug
Test failure. Probably something with the test setup because component works perfectly otherwise. This is the only test that fails in the design-system project.

To Reproduce
Steps to reproduce the behavior:

Run yarn jest /libs/design-system/src/lib/DatePicker/DatePicker.spec.tsx

Expected behavior
Test failure.

Screenshots
image

Desktop (please complete the following information):

  • OS: Ubuntu 22.04

Is Ngrok required to develop?

I am seeing these errors when running locally without any Ngrok setup (I never set an auth token for ngrok).

Errors:

[ ready ] on http://localhost:4200
error: server: unhandled promise rejection: [object Promise]: Error: connect ECONNREFUSED ::1:4551
error: server: unhandled promise rejection: [object Promise]: Error: connect ECONNREFUSED ::1:4551
error: server: unhandled promise rejection: [object Promise]: Error: connect ECONNREFUSED ::1:4551

error: [default-express-handler] connect ECONNREFUSED ::1:4551 {"request":{"method":"POST","url":"/v1/plaid/sandbox/quick-add"},"stackTrace":"Error: connect ECONNREFUSED ::1:4551\n    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16)","user":"clrdtjey40000wizwzyb7hdxo"}

Incongruent Server Responses: 204 on Client vs. 500 on Direct Access (Possible Axios Issue)

Issue Summary

API request from client returns 204 (No Content) status with undefined data, but the same request directly to the server URL results in a 500 status and an error message.

Environment

Operating System: Windows 10
Node.js Version: v20.9.0

Steps to Reproduce

  1. Start Development Server:

Execute yarn run dev to initiate the project's development server.

  1. Log in to the Application:

Successfully log in to the application using the provided credentials.

  1. Observe Error Message:

Upon entering the app after login, note the error message "Unable to load onboarding."

response

  1. Inspect Network Response:

Utilize browser developer tools to examine the network tab.
Locate the API request associated with the onboarding data.
Verify that the response status is 204 (No Content) and the data is undefined.

Client-side request:

Status: 204 No Content
Data: Undefined
client

Server-side request (direct):

Status: 500 Internal Server Error
server

Potential Causes

Axios configuration: Suspecting potential issue with Axios instance configuration.

Remove ConvertKit

We previously used ConvertKit for newsletters and users could subscribe from within the app.

We need to remove all mention/usage of ConvertKit as well as "newsletter subscription" functionality/UI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.