/ibudget

Web app to track income, expenses and analyze spending. Made for a JS challenge.

Primary LanguageJavaScriptMIT LicenseMIT

iBudget

Web app to track income, expenses and analyze spending with responsive design and a backend to provide authentication and persistence.

Example account

Frontend

Used frameworks/libs:

  • React.js (hooks)
  • Rematch (Redux)
  • React Router
  • Tailwind CSS
  • styled-components, twin.macro, Framer Motion
  • ant-design charts
  • Treact

Tests/Documentation:

  • wip

Backend

Used frameworks/libs:

  • Node.js
  • Express.js
  • MySQL
  • Passport (auth)
  • bcrypt
  • Joi (data validation)

Tests/Documentation:

Configuracion/Deployment

Frontend:

  • Modify API_DEV_BASE_URL and API_PROD_BASE_URL in /src/lib/Config.js

Backend:

  • Set the required environment variables:
DB_PORT = 3306
DB_USER = <user>
DB_PASS = <pass>
DB_DATABASE = ibudget
SESSION_SECRET = <session secret>
SESSION_NAME = <session name>
  • Edit cors policy URL at src/lib/config.js
  • Execute sql script at /backend/database.sql

Pending development

  • XSRF protection (!) or JWT implementation
  • API rate limit
  • i18next translation files
  • Add social auth and forgot password
  • Unit tests & stress test
  • Profiling
  • Optimize bundle size
  • More features

Screenshots

1 2 3 4 5 6

Alkemy