masamoe / Optimate

0 stars 0 forks source link

Business Management App

Welcome to our Business Management App! This Android application, developed in Kotlin, provides a comprehensive solution for managing your business efficiently. With features ranging from employee management to financial tracking, our app aims to streamline your business operations.

Team

Tech Stack

The app is built using the following technologies:

Contributions

We welcome contributions from developers to improve our app! Here's how you can contribute:

  1. Fork the repository.
  2. Make your changes in a new branch.
  3. Test your changes thoroughly.
  4. Submit a pull request detailing your modifications.

Images and Videos of the App

  1. Clock In and Out System

https://github.com/masamoe/Optimate/assets/121978255/81f7aaeb-e5f2-4260-9d60-164053726142

  1. Dynamic Landing Page

  1. Expense Uploading and History

  1. Shift Scheduling (Employee)

(Manager)

  1. Employee Creation and Access

DataBase Structure for Firebase Firestore

CREATE COLLECTION accountPayment (
    docRef DOCUMENT (
        BID STRING,
        Date TIMESTAMP,
        Payment FLOAT,
        stripeId STRING
    )
);

CREATE COLLECTION availability (
    docRef DOCUMENT (
        BID STRING,
        UID STRING,
        availability ARRAY<MAP<STRING, VALUE>>,
        name STRING
    )
);

CREATE COLLECTION expenseRequest (
    docRef DOCUMENT (
        amount FLOAT,
        bid STRING,
        dateOfRequest TIMESTAMP,
        expenseRequest STRING,
        name STRING,
        reason STRING,
        receiptPhoto STRING,
        status STRING,
        uid STRING
    )
);

CREATE COLLECTION finances (
    docRef DOCUMENT (
        BID STRING,
        Expenses ARRAY<STRUCT<
            Amount FLOAT,
            Approval BOOLEAN,
            Description STRING,
            Name STRING,
            UID STRING,
            Uploaded_Date TIMESTAMP
        >>
    )
);

CREATE COLLECTION schedule (
    docRef DOCUMENT (
        BID STRING,
        day STRING,
        employees ARRAY<STRING>,
        endTime TIMESTAMP,
        startTime TIMESTAMP
    )
);

CREATE COLLECTION timeOfRequest (
    docRef DOCUMENT (
        bid STRING,
        dateOfRequest TIMESTAMP,
        endDate TIMESTAMP,
        endTime TIMESTAMP,
        name STRING,
        startTime TIMESTAMP,
        status STRING,
        uid STRING
    )
);

CREATE COLLECTION titles (
    docRef DOCUMENT (
        access ARRAY<STRING>,
        bid STRING,
        role STRING,
        title STRING
    )
);

CREATE COLLECTION totalHours (
    docRef DOCUMENT (
        UID ARRAY<STRUCT<
            time FLOAT,
            approval BOOLEAN,
            wage FLOAT
        >>,
        bid STRING
    )
);

CREATE COLLECTION users (
    docRef DOCUMENT (
        UID STRING,
        BID STRING,
        accountStatus ARRAY<STRUCT<
            date TIMESTAMP,
            status STRING
        >>,
        deviceToken STRING,
        email STRING,
        initial_password STRING,
        modules ARRAY<STRING>,
        name STRING,
        role STRING,
        title STRING,
        wage FLOAT,
        phone STRING,
        profilePic STRING,
        address STRING
    )
);

CREATE COLLECTION workLogs (
    docRef DOCUMENT (
        date ARRAY<STRUCT<
            clockIn TIMESTAMP,
            breakStart TIMESTAMP,
            breakEnd TIMESTAMP,
            clockOut TIMESTAMP
        >>,
        UID STRING,
        BID STRING
    )
);

FireStore Storage Locations

images/
profileImages/{UID}

Running the App

To run the app locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/masamoe/Optimate.git
  2. Open the project in Android Studio.

  3. Add in your google-services.json from Firebase when it configured for Android.

  4. Configure Firebase for authentication, database, and storage. Refer to Firebase documentation for detailed instructions.

  5. Clone the node.js server which the code is located at https://github.com/Rangathan/OptimateServer

  6. Replace the server url with your server url

  7. Build and run the app on an Android device or emulator.

Thank you for using our Business Management App! We appreciate your support and contributions. If you encounter any issues or have suggestions for improvement, please don't hesitate to reach out to us.