{"id":25075088,"url":"https://github.com/satyam-software-developer/expense-tracker-demo","last_synced_at":"2026-04-02T04:44:50.795Z","repository":{"id":275412240,"uuid":"926005136","full_name":"satyam-software-developer/expense-tracker-demo","owner":"satyam-software-developer","description":"Expense tracker app created with react.js and node.js/expressjs  for client and server web develoepment.","archived":false,"fork":false,"pushed_at":"2025-02-02T10:11:18.000Z","size":193,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T21:27:43.131Z","etag":null,"topics":["authentication","expressjs","git","github","material-ui","mysql","nodejs","reactjs","shadcn-ui"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/satyam-software-developer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-02T10:04:42.000Z","updated_at":"2025-02-04T04:00:37.000Z","dependencies_parsed_at":"2025-02-02T11:29:13.682Z","dependency_job_id":null,"html_url":"https://github.com/satyam-software-developer/expense-tracker-demo","commit_stats":null,"previous_names":["satyam-software-developer/expense-tracker-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/satyam-software-developer/expense-tracker-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyam-software-developer%2Fexpense-tracker-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyam-software-developer%2Fexpense-tracker-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyam-software-developer%2Fexpense-tracker-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyam-software-developer%2Fexpense-tracker-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satyam-software-developer","download_url":"https://codeload.github.com/satyam-software-developer/expense-tracker-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyam-software-developer%2Fexpense-tracker-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278399288,"owners_count":25980330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","expressjs","git","github","material-ui","mysql","nodejs","reactjs","shadcn-ui"],"created_at":"2025-02-07T00:29:58.579Z","updated_at":"2025-10-05T01:19:44.408Z","avatar_url":"https://github.com/satyam-software-developer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Expense Tracker Demo\n\nThis is an expense tracker application that allows users to manage their expenses, track income, and export reports to a PDF. The app includes user authentication, expense management (add, delete, list), and PDF export functionality. It is built with React.js for the frontend, Express.js with MySQL for the backend, and can scale for large datasets.\n\n# Project Structure\n\nexpense-tracker-demo/\n├── client/ # Frontend code (React.js)\n├── server/ # Backend code (Node.js, Express.js, MySQL)\n├── README.md # This file\n\n# Technologies Used\n\n- Frontend: React.js\n- Backend: Node.js, Express.js\n- Database: MySQL 8 (with ORM and migrations)\n- PDF Export: PDF generation for expense reports\n- Authentication: Email \u0026 password-based authentication with password hashing\n- Libraries/Tools:\n- Component libraries (e.g., Material UI, Shadcn UI)\n  - bcryptjs for password hashing\n  - pdfkit for PDF generation\n  - Sequelize ORM for database interaction (optional)\n\n# Features\n\n1. User Authentication\n   - Registration: Users can register using email and password.\n   - Login: Users can log in with their credentials.\n   - Password Hashing: Passwords are securely hashed using bcryptjs.\n2. Expense Management\n\n- Add Expense: Users can add an expense with:\n  - Amount (required)\n  - Category (required: \"Income\" or \"Expense\")\n  - Description (optional)\n- Delete Expense: Users can delete an expense.\n\n- List Expenses: Users can view a table listing all expenses. The total income and expenses are summarized at the top of the table.\n\n3. Export to PDF\n\n- Users can export their expense report to a PDF. The report will include all the expenses, categorized by \"Income\" or \"Expense\", and displayed in a clean, readable format.\n\n# Getting Started\n\nFollow these steps to set up and run the project locally:\n\n# Prerequisites\n\n- Node.js (v14 or higher)\n- MySQL 8 (or a MySQL-compatible database)\n- npm or yarn (for managing frontend dependencies)\n\n# Setting Up the Backend\n\n1. Clone the repository:\n   git clone https://github.com/satyam-software-developer/expense-tracker-demo.git\n   cd expense-tracker-demo\n   cd server\n2. Install the required dependencies:\n   npm install\n3. Configure the database:\n\n- Set up a MySQL database with a user for the application.\n- Update the .env file in the server/ directory with your database credentials.\n\n4. Run database migrations (if using an ORM like Sequelize):\n   npx sequelize db:migrate\n5. Start the server:\n   nodemon index.js\n   npm start\n   The backend will run on http://localhost:5000.\n\n# Setting Up the Frontend\n\n1. Navigate to the client/ directory:\n   cd client\n2. Install the frontend dependencies:\n   npm install\n3. Start the frontend:\n   npm start\n   The frontend will run on http://localhost:3000.\n\n# Usage\n\n- Visit http://localhost:3000 to use the app.\n- Register or log in with your credentials.\n- Add, delete, and view your expenses.\n- Export your expense report to a PDF.\n\n# Deployment\n\nTo deploy the app:\n\n- Deploy the backend (Express.js) to a platform like Heroku, Vercel, or DigitalOcean.\n- Deploy the frontend (React.js) to a platform like Netlify or Vercel.\n- Update the API URLs in the frontend code to match your deployed backend.\n\n# Selection Criteria\n\nYour project will be evaluated on the following:\n\n- Core Features: Implementation of required functionalities (user authentication, expense management, PDF export).\n- Scalability: Especially for the PDF export feature, handling large datasets (50k transactions per month).\n- Code Quality: Maintainable, well-structured, and clean code with proper comments.\n- Error Handling: Robust handling of edge cases in both frontend and backend.\n- Security: Proper use of password hashing and secure authentication practices.\n\n# License\n\nThis project is licensed under the MIT License.\n# Author\nSatyam Kumar\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatyam-software-developer%2Fexpense-tracker-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatyam-software-developer%2Fexpense-tracker-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatyam-software-developer%2Fexpense-tracker-demo/lists"}