Expense Tracker App

Overview

The Expense Tracker App is a mobile application designed to help users manage and track their expenses efficiently. This README provides information about the app's features, the Minimum Viable Product (MVP), and the recommended folder structure for development.

Features

Core Features

  1. User Authentication:

    • Allow users to create accounts and log in securely.
  2. Expense Entry:

    • Manually input expenses with fields for amount, category, date, and notes.
  3. Expense Listing:

    • Display a list of entered expenses with relevant details.
  4. Expense Categories:

    • Predefined or customizable categories for better expense organization.
  5. Editing/Deleting Expenses:

    • Enable users to edit or delete existing expense entries.
  6. Budget Tracking:

    • Set monthly budgets for each expense category.
    • Visualize budget utilization.
  7. Simple Analytics:

    • Basic charts or graphs to visualize spending patterns over time.
  8. User Profile:

    • Allow users to manage their profile information.

Additional Features (Optional)

  1. Income Tracking:

    • Add sources of income for a more comprehensive financial overview.
  2. Notifications:

    • Receive reminders or alerts for upcoming bills or approaching budget limits.
  3. Security:

    • Implement basic security measures, like encryption and secure connections.
  4. Data Export:

    • Allow users to export their expense data for personal record-keeping.

Development and Technical Features

  1. Responsive Design:

    • Ensure the application is accessible and usable on various devices (desktop, tablet, mobile).
  2. Offline Mode:

    • Enable users to input expenses even when offline, with data synchronization when online.
  3. Feedback Mechanism:

    • Include a way for users to provide feedback or report issues.
  4. Help/FAQ Section:

    • Offer basic guidance on using the app and troubleshooting common issues.

Minimum Viable Product (MVP)

The MVP of the Expense Tracker App includes the following core features:

  • User Authentication
  • Expense Entry and Listing
  • Expense Categories
  • Editing/Deleting Expenses
  • Budget Tracking
  • Simple Analytics
  • User Profile

These features aim to provide essential functionality for users to start tracking their expenses efficiently.

Folder Structure

  • The recommended folder structure for the project is as follows:
project-root/
|-- android/
|-- ios/
|-- node_modules/
|-- src/
|   |-- assets/
|   |   |-- images/
|   |   |-- fonts/
|   |
|   |-- components/
|   |   |-- common/
|   |   |-- screens/
|   |   |-- navigators/
|   |
|   |-- constants/
|   |-- navigation/
|   |-- services/
|   |-- utils/
|   |
|   |-- screens/
|   |   |-- Home/
|   |   |   |-- index.tsx
|   |   |   |-- components/
|   |   |   |-- styles/
|   |   |
|   |   |-- Profile/
|   |       |-- index.tsx
|   |       |-- components/
|   |       |-- styles/
|   |
|   |-- store/
|   |   |-- actions/
|   |   |-- reducers/
|   |   |-- store.ts
|   |
|   |-- App.tsx
|
|-- .gitignore
|-- package.json
|-- tsconfig.json
|-- metro.config.js
|-- babel.config.js
|-- index.js
|-- README.md
|-- app.json

Getting Started

Note: Make sure you have completed the React Native - Environment Setup instructions till "Creating a new application" step, before proceeding.

Step 1: Start the Metro Server

First, you will need to start Metro, the JavaScript bundler that ships with React Native.

To start Metro, run the following command from the root of your React Native project:

# using npm
npm start

# OR using Yarn
yarn start

Step 2: Start your Application

Let Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android or iOS app:

For Android

# using npm
npm run android

# OR using Yarn
yarn android

For iOS

# using npm
npm run ios

# OR using Yarn
yarn ios

If everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.

This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.

Congratulations! 🎉

You've successfully run and modified your React Native App. 🥳

Now what?

Troubleshooting

If you can't get this to work, see the Troubleshooting page.

Learn More

To learn more about React Native, take a look at the following resources: