https://github.com/k61b/portfolion
Portfolio Tracking Application
https://github.com/k61b/portfolion
golang mongodb react reactrouter vite
Last synced: about 1 year ago
JSON representation
Portfolio Tracking Application
- Host: GitHub
- URL: https://github.com/k61b/portfolion
- Owner: k61b
- License: mit
- Created: 2023-05-30T16:58:40.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-24T12:28:54.000Z (over 2 years ago)
- Last Synced: 2023-08-22T21:47:55.348Z (over 2 years ago)
- Topics: golang, mongodb, react, reactrouter, vite
- Language: TypeScript
- Homepage:
- Size: 277 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Portfolion - Portfolio Tracking Application
Portfolion is a portfolio tracking application that allows you to consolidate your savings from different places into a single platform, making it easy to keep track of your investments and savings.
## Table of Contents
- [Introduction](#introduction)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Installation](#installation)
- [Usage](#usage)
- [Environment Variables](#environment-variables)
- [Contributing](#contributing)
- [License](#license)
## Introduction
Portfolion is designed to provide users with a convenient way to monitor their savings and investments across various platforms. The application is built using React and Golang, making it efficient and scalable.
## Features
- Consolidate savings and investments from different sources
- User authentication and authorization
- View portfolio holdings and performance
- Support for various investment types (e.g., stocks, cryptocurrencies, bonds)
- Real-time data updates from integrated APIs
- Secure and encrypted data storage
## Tech Stack
- Frontend: React, React Router
- Backend: Golang (Go)
- Database: MongoDB
- Authentication: JSON Web Tokens (JWT)
- External APIs: [List any external APIs you integrate with, e.g., AVATAR_API]
## Installation
To set up the Portfolion application on your local machine, follow these steps:
1. Clone the repository:
```bash
git clone https://github.com/kayraberktuncer/portfolion.git
cd portfolion
```
2. Install dependencies for the frontend:
```bash
cd client
npm install
```
3. Create a `.env` file in the `client` folder and provide the necessary environment variable(s):
```env
VITE_PUBLIC_API_URL=YOUR_API_URL
```
4. Install dependencies for the backend (v1):
```bash
cd ../v1
go mod download
```
5. Create a `.env` file in the `v1` folder and provide the necessary environment variable(s):
```env
MONGO_URI=YOUR_MONGODB_CONNECTION_STRING
MONGO_DB=YOUR_MONGODB_DATABASE_NAME
USERS_COLLECTION=YOUR_MONGODB_USERS_COLLECTION
SYMBOLS_COLLECTION=YOUR_MONGODB_SYMBOLS_COLLECTION
PORT=YOUR_BACKEND_PORT
JWT_SECRET=YOUR_JWT_SECRET_KEY
API_KEY=YOUR_EXTERNAL_API_KEY
ALLOWED_ORIGINS=YOUR_ALLOWED_ORIGINS
AVATAR_API=YOUR_AVATAR_API_URL
AVATAR_API_OPTIONS=YOUR_AVATAR_API_OPTIONS
```
## Usage
1. Start the backend server:
```bash
cd v1
go run main.go
```
2. Start the frontend development server:
```bash
cd client
npm run dev
```
3. Open your browser and visit `http://localhost:3000` to access the Portfolion application.
## Environment Variables
Here is a list of environment variables used in the application:
- `VITE_PUBLIC_API_URL`: The public API URL for the frontend.
- `MONGO_URI`: The MongoDB connection string.
- `MONGO_DB`: The MongoDB database name.
- `USERS_COLLECTION`: The MongoDB collection for storing user data.
- `SYMBOLS_COLLECTION`: The MongoDB collection for storing investment symbols/data.
- `PORT`: The backend server port number.
- `JWT_SECRET`: Secret key for JSON Web Tokens.
- `API_KEY`: API key for external API integration.
- `ALLOWED_ORIGINS`: Comma-separated list of allowed origins for CORS.
- `AVATAR_API`: URL for the avatar API service.
- `AVATAR_API_OPTIONS`: Options for the avatar API service.
## Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please feel free to create a pull request.
## License
[MIT](LICENSE)