Skip to content
Open

Main #42

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
abdc8e0
Changing javax by jakarta
YassineOuicha Feb 17, 2025
c2e09e1
Mapping properties of domaine entities
YassineOuicha Feb 17, 2025
a3b8d56
Adding the BidListService & Completing the BidListController
YassineOuicha Feb 18, 2025
4890ac7
Adding CurvePointService and completing the CurveController
YassineOuicha Feb 18, 2025
effbcae
Adding RatingService and completing RatingController
YassineOuicha Feb 18, 2025
d6c8fe5
Adding RuleNameService and completing the RuleNameController
YassineOuicha Feb 18, 2025
b6d2f8e
Adding TradeService and completing TradeController
YassineOuicha Feb 18, 2025
cf60cc7
Updating all controllers to return list of entities after save/delete
YassineOuicha Feb 18, 2025
59cae70
Configuring spring security files
YassineOuicha Feb 18, 2025
c42b998
configuring a valid password : The password must contain at least 8 c…
YassineOuicha Feb 18, 2025
e9531c7
The app doesn't work for now, spring security is configured but desab…
YassineOuicha Feb 18, 2025
c2e2810
Correcting some erros in the naming of controllers
YassineOuicha Feb 19, 2025
0894225
Updating dababase with initial data but the app still doesn't work co…
YassineOuicha Feb 19, 2025
646f3c4
camelCase for java entities and snake_case for sql database
YassineOuicha Feb 19, 2025
374a4ef
Updating java class to map the database parameters because of snake_case
YassineOuicha Feb 19, 2025
c8cea28
Modifyin errors in the naming
YassineOuicha Feb 19, 2025
68e3c11
Correcting errors in BidList files (controler, templates ...)
YassineOuicha Feb 19, 2025
f82010d
Updating trade files
YassineOuicha Feb 19, 2025
592b330
Updating other files, list still doesn't work
YassineOuicha Feb 20, 2025
b8207ce
Spring security is now activated, but i can't login !
YassineOuicha Feb 20, 2025
34c3ab5
I can access using login
YassineOuicha Feb 20, 2025
11c8436
Still doesn't work, i don't know why!
YassineOuicha Feb 20, 2025
f061368
login issues
YassineOuicha Feb 21, 2025
f77ef6c
Finally i can log in !
YassineOuicha Feb 21, 2025
4dcfcb4
Updating templates, the app doesn't work correctly
YassineOuicha Feb 21, 2025
c2d960b
Tests updated
YassineOuicha Feb 21, 2025
9148730
All the CRUD tests pass
YassineOuicha Feb 21, 2025
5bbea03
Now the app works, the error was the user details wasn't not uploaded…
YassineOuicha Feb 22, 2025
ed9dd4e
Displayin the username looged in
YassineOuicha Feb 22, 2025
8372995
updating logout methode from get to post
YassineOuicha Feb 23, 2025
72eecfa
Correcting the add route of trade model
YassineOuicha Feb 24, 2025
2b04cbc
Adding mandatory annotation to parameters so we have to enter a value…
YassineOuicha Feb 24, 2025
61579f6
Updating alert messages in case a field is null or empty
YassineOuicha Feb 24, 2025
ef54cf6
Updating spring security
YassineOuicha Feb 27, 2025
dea4abf
Updating tests
YassineOuicha Feb 28, 2025
b7dc9cb
Tests update
YassineOuicha Feb 28, 2025
15a2951
Tests bug
YassineOuicha Mar 1, 2025
f2cdcc5
Updating security password validation
YassineOuicha Mar 2, 2025
ec5d0f1
Updating userdetails service
YassineOuicha Mar 2, 2025
72f9614
Adding javadoc to security and controllers
YassineOuicha Mar 2, 2025
e9a7f6a
Removing unused @Autowired annotations of controllers
YassineOuicha Mar 3, 2025
8cd2e71
Unit testing of BidListService
YassineOuicha Mar 3, 2025
20b21ac
Unit testing of CurvePointService
YassineOuicha Mar 3, 2025
9c219f9
Unit testing of RatingService
YassineOuicha Mar 3, 2025
b7b05a8
Unit testing of RuleNameService
YassineOuicha Mar 3, 2025
e30ca49
Unit testing of TradeService
YassineOuicha Mar 3, 2025
6ef497d
Unit testing of UserService
YassineOuicha Mar 3, 2025
d707718
Refactoring tests names
YassineOuicha Mar 3, 2025
8f087ea
Update of the userservice
YassineOuicha Mar 4, 2025
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
4 changes: 4 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/ouicha-hammou-yassine-poseidon-trading-app.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Poseiden-skeleton/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions Poseiden-skeleton/.idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Poseiden-skeleton/.idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions Poseiden-skeleton/.idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions Poseiden-skeleton/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Poseiden-skeleton/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

175 changes: 107 additions & 68 deletions Poseiden-skeleton/doc/data.sql
Original file line number Diff line number Diff line change
@@ -1,99 +1,138 @@
SHOW DATABASES;
CREATE DATABASE IF NOT EXISTS demo;
USE demo;

CREATE TABLE BidList (
BidListId tinyint(4) NOT NULL AUTO_INCREMENT,
-- Table bidlist
DROP TABLE IF EXISTS bidlist;
CREATE TABLE bidlist (
bid_list_id int NOT NULL AUTO_INCREMENT,
account VARCHAR(30) NOT NULL,
type VARCHAR(30) NOT NULL,
bidQuantity DOUBLE,
askQuantity DOUBLE,
bid DOUBLE ,
bid_quantity DOUBLE,
ask_quantity DOUBLE,
bid DOUBLE,
ask DOUBLE,
benchmark VARCHAR(125),
bidListDate TIMESTAMP,
bid_list_date TIMESTAMP NULL,
commentary VARCHAR(125),
security VARCHAR(125),
status VARCHAR(10),
trader VARCHAR(125),
book VARCHAR(125),
creationName VARCHAR(125),
creationDate TIMESTAMP ,
revisionName VARCHAR(125),
revisionDate TIMESTAMP ,
dealName VARCHAR(125),
dealType VARCHAR(125),
sourceListId VARCHAR(125),
creation_name VARCHAR(125),
creation_date TIMESTAMP NULL,
revision_name VARCHAR(125),
revision_date TIMESTAMP NULL,
deal_name VARCHAR(125),
deal_type VARCHAR(125),
source_list_id VARCHAR(125),
side VARCHAR(125),
PRIMARY KEY (bid_list_id)
);

PRIMARY KEY (BidListId)
)

CREATE TABLE Trade (
TradeId tinyint(4) NOT NULL AUTO_INCREMENT,
-- Table trade
DROP TABLE IF EXISTS trade;
CREATE TABLE trade (
trade_id int NOT NULL AUTO_INCREMENT,
account VARCHAR(30) NOT NULL,
type VARCHAR(30) NOT NULL,
buyQuantity DOUBLE,
sellQuantity DOUBLE,
buyPrice DOUBLE ,
sellPrice DOUBLE,
tradeDate TIMESTAMP,
buy_quantity DOUBLE,
sell_quantity DOUBLE,
buy_price DOUBLE,
sell_price DOUBLE,
trade_date TIMESTAMP NULL,
security VARCHAR(125),
status VARCHAR(10),
trader VARCHAR(125),
benchmark VARCHAR(125),
book VARCHAR(125),
creationName VARCHAR(125),
creationDate TIMESTAMP ,
revisionName VARCHAR(125),
revisionDate TIMESTAMP ,
dealName VARCHAR(125),
dealType VARCHAR(125),
sourceListId VARCHAR(125),
creation_name VARCHAR(125),
creation_date TIMESTAMP NULL,
revision_name VARCHAR(125),
revision_date TIMESTAMP NULL,
deal_name VARCHAR(125),
deal_type VARCHAR(125),
source_list_id VARCHAR(125),
side VARCHAR(125),
PRIMARY KEY (trade_id)
);

PRIMARY KEY (TradeId)
)

CREATE TABLE CurvePoint (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
CurveId tinyint,
asOfDate TIMESTAMP,
term DOUBLE ,
value DOUBLE ,
creationDate TIMESTAMP ,

PRIMARY KEY (Id)
)

CREATE TABLE Rating (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
moodysRating VARCHAR(125),
sandPRating VARCHAR(125),
fitchRating VARCHAR(125),
orderNumber tinyint,
-- Table curvepoint
DROP TABLE IF EXISTS curvepoint;
CREATE TABLE curvepoint (
id int NOT NULL AUTO_INCREMENT,
curve_id int,
as_of_date TIMESTAMP NULL,
term DOUBLE,
value DOUBLE,
creation_date TIMESTAMP NULL,
PRIMARY KEY (id)
);

PRIMARY KEY (Id)
)
-- Table rating
DROP TABLE IF EXISTS rating;
CREATE TABLE rating (
id int NOT NULL AUTO_INCREMENT,
moodys_rating VARCHAR(125),
sand_p_rating VARCHAR(125),
fitch_rating VARCHAR(125),
order_number int,
PRIMARY KEY (id)
);

CREATE TABLE RuleName (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
-- Table rulename
DROP TABLE IF EXISTS rulename;
CREATE TABLE rulename (
id int NOT NULL AUTO_INCREMENT,
name VARCHAR(125),
description VARCHAR(125),
json VARCHAR(125),
template VARCHAR(512),
sqlStr VARCHAR(125),
sqlPart VARCHAR(125),
sql_str VARCHAR(125),
sql_part VARCHAR(125),
PRIMARY KEY (id)
);

-- Table users
DROP TABLE IF EXISTS users;
CREATE TABLE users (
id int NOT NULL AUTO_INCREMENT,
username VARCHAR(125) NOT NULL,
password VARCHAR(125) NOT NULL,
fullname VARCHAR(125) NOT NULL,
role VARCHAR(125) NOT NULL,
PRIMARY KEY (id)
);

-- Initial data
INSERT INTO users (fullname, username, password, role) VALUES
("Administrator", "admin", "$2a$10$pBV8ILO/s/nao4wVnGLrh.sa/rnr5pDpbeC4E.KNzQWoy8obFZdaa", "ADMIN"),
("User", "user", "$2a$10$pBV8ILO/s/nao4wVnGLrh.sa/rnr5pDpbeC4E.KNzQWoy8obFZdaa", "USER");

INSERT INTO bidlist (account, type, bid_quantity, ask_quantity, bid, ask, benchmark, bid_list_date, commentary, security, status, trader, book, creation_name, creation_date, revision_name, revision_date, deal_name, deal_type, source_list_id, side) VALUES
('Account1', 'TypeA', 100.0, 150.0, 50.5, 51.0, 'BenchmarkA', NOW(), 'CommentA', 'SecurityA', 'Active', 'TraderA', 'BookA', 'Admin', NOW(), 'Admin', NOW(), 'DealA', 'Type1', 'SourceA', 'SideA'),
('Account2', 'TypeB', 200.0, 250.0, 60.5, 61.0, 'BenchmarkB', NOW(), 'CommentB', 'SecurityB', 'Inactive', 'TraderB', 'BookB', 'Admin', NOW(), 'Admin', NOW(), 'DealB', 'Type2', 'SourceB', 'SideB');

INSERT INTO trade (account, type, buy_quantity, sell_quantity, buy_price, sell_price, trade_date, security, status, trader, benchmark, book, creation_name, creation_date, revision_name, revision_date, deal_name, deal_type, source_list_id, side) VALUES
('Account1', 'TypeA', 50.0, 40.0, 100.5, 102.0, NOW(), 'SecurityA', 'Completed', 'TraderA', 'BenchmarkA', 'BookA', 'Admin', NOW(), 'Admin', NOW(), 'DealA', 'Type1', 'SourceA', 'SideA'),
('Account2', 'TypeB', 60.0, 55.0, 120.5, 122.0, NOW(), 'SecurityB', 'Pending', 'TraderB', 'BenchmarkB', 'BookB', 'Admin', NOW(), 'Admin', NOW(), 'DealB', 'Type2', 'SourceB', 'SideB');

PRIMARY KEY (Id)
)
INSERT INTO curvepoint (curve_id, as_of_date, term, value, creation_date) VALUES
(1, NOW(), 5.0, 105.5, NOW()),
(2, NOW(), 10.0, 110.0, NOW());

CREATE TABLE Users (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
username VARCHAR(125),
password VARCHAR(125),
fullname VARCHAR(125),
role VARCHAR(125),
INSERT INTO rating (moodys_rating, sand_p_rating, fitch_rating, order_number) VALUES
('A1', 'AA', 'AAA', 1),
('Baa2', 'BBB', 'BB+', 2);

PRIMARY KEY (Id)
)
INSERT INTO rulename (name, description, json, template, sql_str, sql_part) VALUES
('Rule1', 'Description1', '{"rule":"test1"}', 'Template1', 'SELECT * FROM trade', 'SQLPart1'),
('Rule2', 'Description2', '{"rule":"test2"}', 'Template2', 'SELECT * FROM bidlist', 'SQLPart2');

insert into Users(fullname, username, password, role) values("Administrator", "admin", "$2a$10$pBV8ILO/s/nao4wVnGLrh.sa/rnr5pDpbeC4E.KNzQWoy8obFZdaa", "ADMIN")
insert into Users(fullname, username, password, role) values("User", "user", "$2a$10$pBV8ILO/s/nao4wVnGLrh.sa/rnr5pDpbeC4E.KNzQWoy8obFZdaa", "USER")
-- Verifications
SELECT * FROM users;
SELECT * FROM rulename;
SELECT * FROM rating;
SELECT * FROM curvepoint;
SELECT * FROM trade;
SELECT * FROM bidlist;
1 change: 1 addition & 0 deletions Poseiden-skeleton/doc/guideline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
3. Create controller class and place in package com.nnk.springboot.controllers
4. Create view files and place in src/main/resource/templates


## Write unit test
1. Create unit test and place in package com.nnk.springboot in folder test > java

Expand Down
Loading