Travel wallet, the app that makes tracking the budget for traveling easy to understand
Explore the docs »
View Demo (comming soon)
·
Report Bug
·
Request Feature
Travelette is my first full-stack app built using React, Node/Express, Vite, and MySQL.
The app will help people track their transactions/payments when they travel, be able to check how much they spent in their own currency, be able to share different trip transactions with their friends. It should provide various stats about past trips and help people optimize how much they spend when they travel. It will hopefully one day communicate with the user's bank and also (with the help of external APIs) put together a budget for a future trip (calculate flight cost, accommodation, food, gifts, etc).
To get a local copy up and running follow these simple example steps.
List things you need to use the software and how to install them.
- npm
npm install npm@latest -g
- express & vite
npm i express vite
- MySQL (you have to have brew installed already, this is the command for MAC users)
brew services start mysql mysqladmin -u root password 'PASSOWORD OF YOUR CHOICE'
*Navigate to mysql and create the database locally so that you can run the migrate script later (this will generate the tables)
mysql -u root -p
create database travelette;
- Clone the repo
git clone https://github.com/github_username/repo_name.git
- Install NPM packages
npm install
- Install client dependencies - This will install client dependencies (React).
cd client
npm install
- Add a
.env
file to the project folder (root/main) of this repository containing the MySQL authentication information for MySQL user. For example:
DB_HOST=localhost
DB_USER=root
DB_NAME=travelette
DB_PASS=YOUR_MySQL_PASSWORD
- Database migration (run this in the main/root folder in a new terminal window) This will create all DB tables in your database. DO NO RUN THIS COMMAND UNLESS YOU HAVE CREATE A DB locally (see Prerequisites).
npm run migrate
- Navigate to the main and access the MySQL interface in your terminal by running
mysql -u root -p
- In your MySQL console, you can run
use travelette;
- Check table Transactions (or any other table) to see the structure of the transactions table.
describe transactions;
- Start server by going to the root folder and running
npm start
- Open a separate terminal window and navigate to the client folder, then run
npm run dev
- Run
npm install
in project directory. This will install server-related dependencies such asexpress
. cd client
and runnpm install
. This will install client dependencies (React).
- Access the MySQL interface in your terminal by running
mysql -u root -p
- Create a new database called travelette:
create database travelette
- Add a
.env
file to the project folder of this repository containing the MySQL authentication information for MySQL user. For example:
DB_HOST=localhost
DB_USER=root
DB_NAME=travelette
DB_PASS=YOURPASSWORD
- Run
npm run migrate
in the project folder of this repository, in a new terminal window. This will create all DB tables in your database. - Navigate to the main and access the MySQL interface in your terminal by running
mysql -u root -p
- In your MySQL console, you can run
use travelette;
and thendescribe transactions;
(or any other table) to see the structure of the transactions table.
- Run
npm start
in project directory to start the Express server on port 4000 - In another terminal, do
cd client
and runnpm run dev
to start the client in development mode with hot reloading in port 5173.
Travelette is a my first full stack app built using React, Node/Express, Vite and MySQL.
Documentation will be available in the future Documentation
- Add editing option to the transaction
- Add trips table and basic component functionality
- Create login page
- Nested Feature
See the [open issues][issues-url] for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU GENERAL PUBLIC LICENSE. See LICENSE
for more information.
Paula Burghelea - [email protected]
Personal Website - mycupoflatte.com