BogdanBargaoanu/MoneyStream
Full-stack application for real-time exchange rates, featuring data visualization and geolocation integration for location-based insights. ๐ต๐ฐ
MoneyStream
Streamlining your finances, empowering your future.
Built with the tools and technologies:
MoneyStream is a comprehensive platform designed to provide users with real-time exchange rates, manage exchange rate data, and visualize currency trends. It includes a robust backend server, an admin interface for managing data, and a client interface for end-users to view the best or nearest exchange rates.
Highlights
- Featured in Internet of Things Student Challange 2025
- Featured in InnovationLabs 2025
Deployment
- Admin panel: https://moneystream.onrender.com/
- Client panel: https://moneystreamclient.onrender.com/
- API Documentation: https://moneystreamapi.onrender.com/api/
Documentation
For a comprehensive documentation of this project, including system architecture, implementation details, please refer to the attached PDF document.
Note: The documentation is provided in Romanian.
Summary
This repository contains three main components of the Exchange Rate Application:
- Server App: Backend server that handles API requests and database interactions.
- Exchange Admin App: Admin interface for managing exchange rates, locations, and currencies.
- Exchange Client App: Client interface for viewing the nearest and best exchange rates.
Setup Instructions
Prerequisites
- Node.js and npm installed
- MySQL database setup
Server App
-
Navigate to the server directory:
cd server -
Install dependencies:
npm install
-
Set up the database:
- Update the database configuration in
server/app.js.
- Update the database configuration in
-
Environmental variables:
- Create a
.envfile in theserverdirectory. - Enter your SMTP credentials.
- Enter the MySQL credentials.
SMTP & MySQL
SMTP_USER=your_email SMTP_PASS=your_password SECRET_KEY=your_secret_key MYSQL_HOST=your_host(localhost if locally) MYSQL_USER=your_user(root if default) MYSQL_PASS=your_mysql_pass
- Create a
.envfile in theexchange-adminandexchange-admindirectory. - Enter the API URL.
Admin App & Client App
REACT_APP_API_URL=your_IPV4_url - Create a
-
Run the server:
npm start
The server will start on
http://localhost:3000.
Exchange Admin App
-
Navigate to the exchange-admin directory:
cd exchange-admin -
Install dependencies:
npm install
-
Run the admin app:
npm start
The admin app will start on
http://localhost:3001.
Exchange Client App
-
Navigate to the exchange-client directory:
cd exchange-client -
Install dependencies:
npm install
-
Run the client app:
npm start
The client app will start on
http://localhost:3002.
Server App
- API Security with JWT.
- SMTP implementation.
The server uses JSON Web Tokens (JWT) to secure the API endpoints.
- Data Encryption
User passwords are hashed using MD5 before being stored in the database to ensure security.
Exchange Admin App
- Login Functionality with 2FA via email confirmation code.
The admin app includes a login page where administrators must authenticate using their credentials.
JWT tokens are used to manage sessions securely.
- Manage exchange rates, locations, and currencies.
- View and update rates.
- Insert new rates.
- Delete rates.
- Data visualization using Google Charts.
Exchange Client App
- View nearest exchange rates based on location.
- View best exchange rates.
- Map integration with Google Maps.
- Reactive design.
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.