Skip to content

Commit

Permalink
account page skeleton
Browse files Browse the repository at this point in the history
  • Loading branch information
wkrzywiec committed Nov 12, 2024
1 parent 0266df1 commit 36fef06
Show file tree
Hide file tree
Showing 8 changed files with 173 additions and 69 deletions.
3 changes: 3 additions & 0 deletions services/mankkoo-ui/app/accounts/page.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.bold {
font-weight: bold;
}
58 changes: 55 additions & 3 deletions services/mankkoo-ui/app/accounts/page.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,59 @@
import Link from "next/link";
import dynamic from "next/dynamic";

import Table from "@/components/charts/Table";
import Button from "@/components/elements/Button";
import TileHeader from "@/components/elements/TileHeader";

import styles from './page.module.css'


const LineChart = dynamic(() => import('@/components/charts/Line'), {
ssr: false, // Disable server-side rendering, more info: https://nextjs.org/docs/messages/react-hydration-error
});

export default function Home() {
return (
<div>
Accounts page
</div>
<main className="mainContainer">
<div className="gridItem span4Columns">
<h1>Accounts</h1>
<p>List of all transactions on your checking and savings bank accounts. Here you can import new transactions.</p>
</div>

<div className="gridItem span2Columns">
<Button>ING - Osobiste</Button>
<Button>ING - Wspólne</Button>
<Button>ING - Oszczędnościowe</Button>
<Button>mBank - Osobiste</Button>
<Button>Alior - Firmowe</Button>
<Button>Santander - Osobiste</Button>
<Button>PKO - Dziwne</Button>
<Button>Millenium - Oszczędnościowe</Button>
</div>
<div className="gridItem span2Columns">
<TileHeader headline="ING - Osobiste">
Short summary about selected bank account
</TileHeader>
<p><span className={styles.bold}>Bank: </span><Link href="https://www.mbank.pl">mBank</Link></p>
<p><span className={styles.bold}>Account:</span> PL 123345451232342</p>
<p><span className={styles.bold}>Account name:</span> eKonto</p>
<p><span className={styles.bold}>Alias:</span> Osobiste</p>
<p><span className={styles.bold}>Opened at:</span> 05-12-2016</p>
<p><span className={styles.bold}>ID:</span>031b2574-f8c2-4b30-be2e-24f6d8b48ac0</p>
</div>

<div className="gridItem span2Columns">
<TileHeader headline="Transactions">
List of all transactions for specific account.
</TileHeader>
<Table style={{width: "90%"}}></Table>
</div>
<div className="gridItem span2Columns">
<TileHeader headline="Account History">
Glance into account balance.
</TileHeader>
<LineChart></LineChart>
</div>
</main>
);
}
51 changes: 51 additions & 0 deletions services/mankkoo-ui/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,55 @@ body {
overflow-y: auto; /* This part is needed to add a scrollbar for main contnent but not for a menu */
padding-left: 3%;
padding-right: 3%;
}

.mainContainer {
display: grid;
grid-template-columns: repeat(4, 1fr);
column-gap: 5px;
row-gap: 5px;
padding-bottom: 50px;
}

.gridItem {
margin: 5px;
}

.dummyGridItem {
background-color: coral;
height: 200px;
width: 200px;
}

.span2Columns {
grid-column: span 2;
}

.span3Columns {
grid-column: span 3;
}

.span4Columns {
grid-column: span 4;
}

.span2Rows {
grid-row-end: span 2;
}

.gridItem h1 {
font-size: 4rem;
font-weight: 700;
margin-bottom: 0%;
}

.gridItem h1 + p {
font-weight: 200;
margin-top: 0.2rem;
}

.gridItem h2 {
font-size: 2rem;
font-weight: 800;
margin-bottom: 0%;
}
47 changes: 0 additions & 47 deletions services/mankkoo-ui/app/page.module.css
Original file line number Diff line number Diff line change
@@ -1,50 +1,3 @@
.mainContainer {
display: grid;
grid-template-columns: repeat(4, 1fr);
column-gap: 5px;
row-gap: 5px;
padding-bottom: 50px;
}

.gridItem {
margin: 5px;
}

.dummyGridItem {
background-color: coral;
height: 200px;
width: 200px;
}

.span2Columns {
grid-column: span 2;
}

.span4Columns {
grid-column: span 4;
}

.span2Rows {
grid-row-end: span 2;
}

.gridItem h1 {
font-size: 4rem;
font-weight: 700;
margin-bottom: 0%;
}

.gridItem h1 + p {
font-weight: 200;
margin-top: 0.2rem;
}

.gridItem h2 {
font-size: 2rem;
font-weight: 800;
margin-bottom: 0%;
}

.horizontalAlignment {
display: flex;
flex-direction: row;
Expand Down
36 changes: 18 additions & 18 deletions services/mankkoo-ui/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,31 +78,31 @@ export default function Home() {


return (
<main className={styles.mainContainer}>
<div className={`${styles.gridItem} ${styles.span4Columns}`}>
<main className="mainContainer">
<div className="gridItem span4Columns">
<h1>Finance Overview</h1>
<p>A detailed overview of your personal finances, summarizing current wealth, presenting historical data, and highlighting key trends.</p>
</div>

<div className={`${styles.gridItem} ${styles.span4Columns}`}>
<div className="gridItem span4Columns">
<h2>Current Indicators</h2>
</div>


<div className={styles.gridItem}>
<div className="gridItem">
<Indicator headline="Net Worth" text="no data" />
</div>
<div className={styles.gridItem}>
<div className="gridItem">
<Indicator headline="Savings" text={formattedSavings} />
</div>
<div className={styles.gridItem}>
<div className="gridItem">
<Indicator headline="Last Month Income" text="no data" textColor="#659B5E" />
</div>
<div className={styles.gridItem}>
<div className="gridItem">
<Indicator headline="Last Month Spendings" text="no data" textColor="#ED6B53" />
</div>

<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<TileHeader headline="Total Net Worth">
Includes estimated real estate value, total retirement funds, and all financial assets (accounts and investments).
</TileHeader>
Expand All @@ -112,7 +112,7 @@ export default function Home() {
</div>
</div>

<div className={`${styles.gridItem} ${styles.span2Columns} ${styles.span2Rows}`}>
<div className="gridItem span2Columns span2Rows">
<TileHeader headline="Financial Fortress">
Based on a book <Link href="https://finansowaforteca.pl/">Finansowa Forteca by Marcin Iwuć</Link>.
</TileHeader>
Expand All @@ -122,7 +122,7 @@ export default function Home() {
</div>
</div>

<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<TileHeader headline="Financial Savings">
Total wealth held in bank accounts and liquid assets (excluding real estate and retirement funds).
</TileHeader>
Expand All @@ -133,50 +133,50 @@ export default function Home() {
</div>


<div className={`${styles.gridItem} ${styles.span4Columns}`}>
<div className="gridItem span4Columns">
<h2>History</h2>
</div>

<div className={`${styles.gridItem} ${styles.span4Columns}`}>
<div className="gridItem span4Columns">
<TileHeader headline="Total Net Worth">
Includes estimated real estate value, total retirement funds, and all financial assets (accounts and investments).
</TileHeader>
<LineChart />
</div>

<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<div className={styles.verticalAlignment}>
<SubHeadline>Total Net Worth Distribution per each month</SubHeadline>
<BarChart />
</div>
</div>
<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<div className={styles.verticalAlignment}>
<SubHeadline>Income per each month by comparing value from the previous year for the same month</SubHeadline>
<LineChart />
</div>
</div>

<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<TileHeader headline="Financial Savings">
💸 Entire wealth located on bank accounts and easy to sell assets.
</TileHeader>
<LineChart x={totalHistory?.date} y={totalHistory?.total} seriesName="Savings History"/>
</div>
<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<TileHeader headline="Real-estate Value">
🏠 Historical value of all real-estates (including the ones for investments and not).
</TileHeader>
<LineChart />
</div>

<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<TileHeader headline="Investments">
💸 Historical value of all investments divided by the asset type excluding real-estate.
</TileHeader>
<LineChart />
</div>
<div className={`${styles.gridItem} ${styles.span2Columns}`}>
<div className="gridItem span2Columns">
<TileHeader headline="Retirement">
👴Cumultive resources collected for a retirement.
</TileHeader>
Expand Down
1 change: 0 additions & 1 deletion services/mankkoo-ui/components/charts/line.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import ChartDataLabels from 'chartjs-plugin-datalabels';
import zoomPlugin from 'chartjs-plugin-zoom';
import 'chartjs-adapter-moment';


import { mankkooColors } from "@/app/colors";

ChartJS.register(zoomPlugin, Tooltip, ChartDataLabels, LinearScale, CategoryScale, PointElement, LineElement, TimeScale);
Expand Down
35 changes: 35 additions & 0 deletions services/mankkoo-ui/components/elements/Button.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

.buttonWrapper {
margin-right: 20px;
margin-bottom: 20px;
display: inline-block;
}

.button30 {
font-family: "Open Sans", sans-serif;
font-size: 16px;
letter-spacing: 2px;
text-decoration: none;
text-transform: uppercase;
color: #000;
cursor: pointer;
border: 3px solid;
padding: 0.25em 0.5em;
box-shadow: 1px 1px 0px 0px, 2px 2px 0px 0px, 3px 3px 0px 0px, 4px 4px 0px 0px, 5px 5px 0px 0px;
position: relative;
user-select: none;
-webkit-user-select: none;
touch-action: manipulation;
}

.button30:active {
box-shadow: 0px 0px 0px 0px;
top: 5px;
left: 5px;
}

@media (min-width: 768px) {
.button30 {
padding: 0.25em 0.75em;
}
}
11 changes: 11 additions & 0 deletions services/mankkoo-ui/components/elements/Button.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { ReactNode } from "react"
import classes from "./button.module.css"

export default function Button({children}: {children: ReactNode}) {
return (
<div className={classes.buttonWrapper}>
<button className={classes.button30} role="button">{children}</button>
</div>

)
}

0 comments on commit 36fef06

Please sign in to comment.