Skip to content
Open

User #10

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
12c7184
starting project
Desani007 Mar 12, 2020
a6f7a15
project files
Desani007 Mar 12, 2020
3d2cc36
Merge pull request #1 from Desani007/master
Desani007 Mar 12, 2020
225a92a
alter basic structure
k-romero Mar 12, 2020
c965bd1
Merge pull request #2 from Desani007/file-structure-feature
Desani007 Mar 12, 2020
68d4fbd
add dependency for unirest and create methods for api calls
k-romero Mar 13, 2020
5b4f825
Merge branch 'tempdev' of https://github.com/Desani007/JustCode into dev
obentoka Mar 14, 2020
0d8b2e8
Added sql stuff for testing
obentoka Mar 14, 2020
cc68c84
update file structure, add enums, import console class
k-romero Mar 15, 2020
35b4409
create method to get all info from enum
k-romero Mar 15, 2020
ee0a087
import library to round doubles, create tests for it
k-romero Mar 15, 2020
7148492
create methods to calculate equity of share, number of shares, percen…
k-romero Mar 15, 2020
645054c
create method to output position
k-romero Mar 15, 2020
9a408f2
create method to get string of all positions in portfolio
k-romero Mar 15, 2020
69593af
Merge pull request #4 from Desani007/tempdev
Han-Lin-zc Mar 15, 2020
471ee3f
finished trasactionMeta
obentoka Mar 16, 2020
be00009
transactions done
obentoka Mar 16, 2020
eac6882
stock almost done
obentoka Mar 16, 2020
c0e9beb
Merge pull request #5 from Desani007/stock_feature
Han-Lin-zc Mar 16, 2020
4f6f2ac
user completed
Desani007 Mar 17, 2020
102d285
user completed chnaged package
Desani007 Mar 17, 2020
1827cce
Merge pull request #7 from Desani007/user
obentoka Mar 17, 2020
80bdc95
Add stocks to JSON
Mar 17, 2020
147952f
connected
chipfody Mar 17, 2020
86b7b98
Merge pull request #9 from Desani007/sql-feature
k-romero Mar 17, 2020
96dfa57
Add parsingJSON class
Mar 17, 2020
45c01a0
Merge branch 'dev' of https://github.com/Desani007/JustCode into feat…
Mar 17, 2020
b6bb50e
Merge pull request #10 from Desani007/featureJSON
k-romero Mar 17, 2020
12efcaf
Merge branch 'dev' of https://github.com/Desani007/JustCode into feat…
Mar 17, 2020
f6b326e
Getters all works
Mar 17, 2020
4c6ced7
saved work - create and add
chipfody Mar 18, 2020
a89935c
add messages and entry console, complete get stock feature
k-romero Mar 18, 2020
a42165d
Finish parsing JSON
Mar 18, 2020
f3e89e6
Merge pull request #11 from Desani007/getstock-feature
Han-Lin-zc Mar 18, 2020
37fb9fd
made changes
k-romero Mar 18, 2020
e6369c6
Merge branch 'dev' of https://github.com/Desani007/JustCode into gets…
k-romero Mar 18, 2020
f524eaf
Merge pull request #12 from Desani007/featureJSON
obentoka Mar 18, 2020
ebc912a
merging the updates from pull
k-romero Mar 18, 2020
af477f4
fixed tests to work with test DB created methods to update stock values
k-romero Mar 18, 2020
b68a5d1
saved pre-pull of Han's
chipfody Mar 18, 2020
324e141
Merge branch 'dev' of https://github.com/Desani007/JustCode into sql-…
chipfody Mar 18, 2020
0b5cbbf
create method to make transaction
k-romero Mar 18, 2020
9373142
create method to add stocks from DB with tests/remove all old portfolio
k-romero Mar 18, 2020
766829f
create a get position method with test
k-romero Mar 18, 2020
63110f5
create method to get all positions in portfolio
k-romero Mar 19, 2020
4c1e5a5
clean up
k-romero Mar 19, 2020
1249a94
Merge pull request #13 from Desani007/update-stock-feature
Han-Lin-zc Mar 19, 2020
cd5fefe
functionality in connect, create, and insert into table
chipfody Mar 19, 2020
ed4a443
functioning connect, createTable, and insertTAble
chipfody Mar 19, 2020
edfe775
Merge pull request #16 from Desani007/sql-feature
obentoka Mar 19, 2020
9398f64
added sql statment for user
Desani007 Mar 21, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 8 additions & 23 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,8 @@
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.idea/*
*.iml
*/target/*
*/target/**
.classpath
.project
.settings/idea
target/
1 change: 1 addition & 0 deletions OurReadME.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This would be the read me for our project!
60 changes: 60 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>untitled1</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>com.konghq</groupId>
<artifactId>unirest-java</artifactId>
<version>3.4.01</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.11</version>
</dependency>
<dependency>
<groupId>org.decimal4j</groupId>
<artifactId>decimal4j</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>


</project>

Binary file added src/.DS_Store
Binary file not shown.
Binary file added src/main/.DS_Store
Binary file not shown.
17 changes: 17 additions & 0 deletions src/main/java/Simulator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import account.User;
import utilities.Console;
import utilities.Messages;

public class Simulator {
public static Console console = new Console(System.in,System.out);
public static User user = new User();

public static void main(String[] args) {
console.println(Messages.welcome);
user.setFirstName(console.getStringInput(Messages.enterFirstName));
console.println(Messages.startingGuide);
console.getIntegerInput(Messages.startingStocks());
}


}
112 changes: 112 additions & 0 deletions src/main/java/account/Portfolio.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
package account;

import org.decimal4j.util.DoubleRounder;
import stocks.Stock;
import stocks.Transaction;
import utilities.Console;
import utilities.Messages;

import java.util.ArrayList;


public class Portfolio {
private ArrayList<Stock> mainPortfolio;
Console console = new Console(System.in,System.out);
private Double buyingPower;
private Double currentPortfolioValue;

public Portfolio() {
this.mainPortfolio = new ArrayList<>();
this.buyingPower = 2500.00;
this.currentPortfolioValue = 0.00;
}

public Double getBuyingPower() {
return buyingPower;
}

public Double getCurrentPortfolioValue() {
return currentPortfolioValue + buyingPower;
}

public void addStockToPortfolio(Stock stock){
mainPortfolio.add(stock);
}

public void purchaseStock(String stockSymbol, String month, Integer numOfShares){
Double costOfPurchase = DoubleRounder.round(Stock.checkStockPrice(stockSymbol,month) * numOfShares,2);
if(costOfPurchase < buyingPower){
if(checkToSeeIfOwnStock(stockSymbol)){
getStockFromPortfolio(stockSymbol).addTransaction(Transaction.makeTransaction(stockSymbol,month,numOfShares));
} else {
//TODO resolve way to get name for stock per symbol
Stock stock = new Stock(stockSymbol,"TempName");
stock.addTransaction(Transaction.makeTransaction(stockSymbol,month,numOfShares));
addStockToPortfolio(stock);
}
buyingPower = buyingPower - costOfPurchase;
} else{
console.println(Messages.notEnough);
}
}

public Boolean checkToSeeIfOwnStock(String stockSymbol){
Boolean result = false;
for (Stock s : mainPortfolio) {
if(s.symbol.equalsIgnoreCase(stockSymbol)){
result = true;
break;
}
}
return result;
}

public Stock getStockFromPortfolio(String stockSymbol){
for (Stock s: mainPortfolio) {
if(s.symbol.equalsIgnoreCase(stockSymbol)){
return s;
}
}
return null;
}

public void updateCurrentPortfolioValue(String month){
Double newCurrentValue = 0.0;
for (Stock s: mainPortfolio) {
s.updateCurrentStockPrice(s.symbol,month);
newCurrentValue += getEquityOfStock(s);
}
currentPortfolioValue = newCurrentValue;
}

public Double getEquityOfStock(Stock stock){
return DoubleRounder.round((stock.getCurrentStockPrice() * stock.getTotalNumOfShares()),2);
}

public String getPositionOfStock(String stockSymbol){
StringBuilder builder = new StringBuilder();
Stock stock = getStockFromPortfolio(stockSymbol);
builder.append("Name : ")
.append(stock.name)
.append("\nSymbol : ")
.append(stock.symbol)
.append("\nNumber of Shares : ")
.append(stock.totalNumOfShares)
.append("\nCurrent Price : ")
.append(stock.currentStockPrice)
.append("\nEquity : ")
.append(stock.valueOfPosition);
return builder.toString();
}

public String getAllPositionsFromPortfolio(){
StringBuilder builder = new StringBuilder();
for (Stock s : mainPortfolio) {
builder.append("*******************")
.append("\n")
.append(getPositionOfStock(s.symbol))
.append("\n");
}
return builder.toString();
}
}
42 changes: 42 additions & 0 deletions src/main/java/account/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package account;

public class User {


private long id;
private String firstName;
private String lastName;
private String dob;

public long getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getFirstName( ) {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {

this.lastName = lastName;
}
public String getDob() {
return dob;
}

public void setDob(String dob) {
this.dob = dob;
}
}
27 changes: 27 additions & 0 deletions src/main/java/controller/ApiController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package controller;

import kong.unirest.HttpResponse;
import kong.unirest.Unirest;

public class ApiController {

public static String createApiQuery(String symbol){
StringBuilder builder = new StringBuilder();
//beginning part of the get() method
builder.append("https://alpha-vantage.p.rapidapi.com/query?datatype=json&symbol=")
.append(symbol.toUpperCase())
.append("&function=TIME_SERIES_MONTHLY");

return builder.toString();
}

public static String fetchApiQuery(String yourQuery){
HttpResponse<String> response = Unirest.get(yourQuery)
.header("x-rapidapi-host", "alpha-vantage.p.rapidapi.com")
.header("x-rapidapi-key", "9c88018860msh40e297080f45ec6p13b769jsnc02453b1e456")
.asString();
response.getBody();
return response.getBody();
}

}
77 changes: 77 additions & 0 deletions src/main/java/controller/ParsingJSON.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package controller;

import kong.unirest.json.JSONObject;
import java.util.Iterator;
import java.util.Set;


public class ParsingJSON {

private String symbol;
private String dateOfMonth;
private String open;
private String high;
private String low;
private String close;
private String volume;


public void makeMonthObjects(String JSON){

try {
JSONObject stock = new JSONObject(JSON);
JSONObject meta = stock.getJSONObject("Meta Data");
JSONObject monthly = stock.getJSONObject("Monthly Time Series");

symbol = meta.getString("2. Symbol");

Set<String> setMonth = monthly.keySet();
Iterator monthIterator = setMonth.iterator();
while (monthIterator.hasNext()){
Object o = monthIterator.next();
JSONObject monthlyJSONObject = monthly.getJSONObject((String) o);

dateOfMonth = (String) o;
open = monthlyJSONObject.getString("1. open");
high = monthlyJSONObject.getString("2. high");
low = monthlyJSONObject.getString("3. low");
close = monthlyJSONObject.getString("4. close");
volume = monthlyJSONObject.getString("5. volume");
monthIterator.next();

}

} catch (Exception e){
System.err.println(e.getMessage() );
System.exit(0);
}
}

public String getSymbol() {
return this.symbol;
}

public String getDateOfMonth() {
return this.dateOfMonth;
}

public String getOpen() {
return this.open;
}

public String getHigh() {
return this.high;
}

public String getLow() {
return this.low;
}

public String getClose() {
return this.close;
}

public String getVolume() {
return this.volume;
}
}
Loading