According to The New York Times, there is a significant inequality present in credit card rewards programs, where wealthy individuals enjoy luxurious perks while the less affluent bear the financial burden, perpetuating economic disparity. These disparities can indeed exacerbate the economic gap between affluent individuals who benefit from lavish perks and lower-income consumers who ultimately subsidize these rewards. We must advocate for reforms such as reducing interchange fees and promoting competition to ensure a fairer distribution of rewards and economic benefits. As a first step, I would analyze the current credit card rewards landscape in 2024, comparing each credit card's rewards, annual fees, and APIs from the top five banks in the U.S. This would enable middle or lower-class consumers to make informed decisions to maximize the benefits available to them when considering opening credit cards.
Ranking | Bank | Head Quarter | Total Assets | Branches |
---|---|---|---|---|
1 | JPMorgan Chase | New York, NY | $3.3 trillion | 4,800+ |
2 | Bank of America | Charlotte, North Carolina | $2.4 trillion | 3,700+ |
3 | Wells Fargo | San Francisco, California | $1.7 trillion | 4,400+ |
4 | Citibank | New York, NY | $1.6 trillion | 650+ |
5 | U.S.Bank | Minneapolis, Minnesota | $657 billion | 2,300+ |
- Jae Bratton, Nerdwallet, "15 Best Cash Back Credit Cards of May 2024"
- Jeff Cotrupe, MongoDB, "Next Generation Mobile Banking"
- Comparecredit, "Best Cash Back Credit Cards of April 2024"
- Chenzi Xu and Jeffrey Reppucci, “The Dirty Little Secret of Credit Card Rewards Programs.” The New York Times, March 4, 2023
- Cassidy Horton and Lauren Graves, Forbes, "Largest Banks In The U.S. 2024"
Computation: 2024.04.28.-29.
- Users can pull zero annual fee credit card.
- I choose lowercase route paths, which is consistent and adheres to common conventions.
// Define routes for a each bank's credit card
// ------------------------------ [ JPMorgan Chase ]
app.get('/jpmorganchase', jpMorganChaseController.fetchAllJPMorganChases);
app.get('/jpmorganchase/:id', jpMorganChaseController.fetchJPMorganChase);
app.post('/jpmorganchase', jpMorganChaseController.createJPMorganChaseCard);
app.put('/jpmorganchase/:id', jpMorganChaseController.updateJPMorganChaseCard);
app.delete('/jpmorganchase/:id', jpMorganChaseController.deleteJPMorganChaseCard);
// ------------------------------ [ Bank of America ]
app.get('/bankofamerica', bankofAmericaController.fetchAllBankofAmericas);
app.get('/bankofamerica/:id', bankofAmericaController.fetchBankofAmerica);
app.post('/bankofamerica', bankofAmericaController.createBankofAmericaCard);
app.put('/bankofamerica/:id', bankofAmericaController.updateBankofAmericaCard);
app.delete('/bankofamerica/:id', bankofAmericaController.deleteBankofAmericaCard);
// ------------------------------ [ WellsFargo ]
app.get('/wellsfargo', wellsFargoController.fetchAllWellsFargos);
app.get('/wellsfargo/:id', wellsFargoController.fetchWellsFargo);
app.post('/wellsfargo', wellsFargoController.createWellsFargoCard);
app.put('/wellsfargo/:id', wellsFargoController.updateWellsFargoCard);
app.delete('/wellsfargo/:id', wellsFargoController.deleteWellsFargoCard);
// ------------------------------ [ Citi Bank ]
app.get('/citibank', citiBankController.fetchAllCitiBanks);
app.get('/citibank/:id', citiBankController.fetchCitiBank);
app.post('/citibank', citiBankController.createCitiBankCard);
app.put('/citibank/:id', citiBankController.updateCitiBankCard);
app.delete('/citibank/:id', citiBankController.deleteCitiBankCard);
// ------------------------------ [ U.S.Bank ]
app.get('/usbank', usBankController.fetchAllUSBanks);
app.get('/usbank/:id', usBankController.fetchUSBank);
app.post('/usbank', usBankController.createUSBankCard);
app.put('/usbank/:id', usBankController.updateUSBankCard);
app.delete('/usbank/:id', usBankController.deleteUSBankCard);
Status | Requirement | Weight |
---|---|---|
✅ | Use at least three different data collections within the database (such as users, posts, or comments). | 5% |
✅ | Utilize reasonable data modeling practices. | 10% |
✅ | Create GET routes for all data that should be exposed to the client, using appropriate query commands to retrieve the data from the database. | 10% |
✅ | Create POST routes for data, as appropriate, using appropriate insertion commands to add data to the database. At least one data collection should allow for client creation via a POST request. | 10% |
✅ | Create GET routes for all data that should be exposed to the client. | 5% |
✅ | Create POST routes for data, as appropriate. At least one data category should allow for client creation via a POST request. | 10% |
✅ | Create PATCH or PUT routes for data, as appropriate, using appropriate update commands to change data in the database. At least one data collection should allow for client manipulation via a PATCH or PUT request. | 10% |
✅ | Create DELETE routes for data, as appropriate, using appropriate delete commands to remove data from the database. At least one data collection should allow for client deletion via a DELETE request. | 10% |
✅ | Include sensible indexes for any and all fields that are queried frequently. For fields that may have a high write-to-read ratio, you may forgo indexes for performance considerations. Make comments of this where applicable. | 5% |
✅ | Include sensible MongoDB data validation rules for at least one data collection. | 5% |
✅ | Populate your application's collections with sample data illustrating the use case of the collections. You must include at least five sample documents per collection. | 5% |
✅ | Utilize reasonable code organization practices. | 5% |
✅ | Ensure that the program runs without errors (comment out things that do not work, and explain your blockers - you can still receive partial credit). | 10% |
✅ | Commit frequently to the git repository. | 5% |
✅ | Level of effort displayed in creativity and user experience. | 5% |
Status | Requirement | Weight |
---|---|---|
✅ | Use Mongoose to implement your application. | +1 |
Copyright © 2024, Hannah Moon. Released under the MIT License.