This is a simple web application that allows Titus Ltd employees to track their travel-related expenses. It provides two main features:
Expenses page: where the user can add, edit, and delete expenses.
Stats page: where the user can see monthly statistics about the submitted expenses.
This project is deployed on Vercel at titus.vercel.app.
- Add, edit, and delete expenses
- See stats per month about submitted expenses
- Each expense claim has :
- The name of the claimer
- The date of the expense
- The description
- The amount (in EUR)
- Approval status (anyone can approve)
- Modal component implemented using React Portal
- React
- Kea (for state management)
- Tailwind CSS (for styling)
- Chart.js (for data visualization)
- Supabase (for data storage)
- PropTypes (for type checking)
- Clone this repository:
git clone https://github.com/isfiaya/titus - Install dependencies:
npm install - Create a .env file in the root of the project and add the following environment variables: VITE_SUPABASE_URL: the URL of your Supabase project VITE_SUPABASE_ANON_KEY: your Supabase project's anonymous key
- Start the development server:
npm run dev
I used Supabase to store the data for this project. Supabase is a cloud-based database service that allows you to quickly and easily build applications with data persistence. It provides an easy-to-use API for querying, inserting, updating, and deleting data.
I have created an expenses table in Supabase with the following columns:
id: the unique identifier for each expenseexpense_date: the date of the expensedescription: a short description of the expenseamount: the amount of the expense in EURclaimer_name: the name of the person who made the claimapproved: a boolean value indicating whether the expense is approved or not