Skip to content

Commit 9f268fe

Browse files
authored
Merge pull request #46 from INESCTEC/feat/ui-enhancements
Redesign / UI improvements
2 parents 816fa4f + 420ec40 commit 9f268fe

22 files changed

+1527
-653
lines changed

package-lock.json

Lines changed: 33 additions & 93 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"version": "0.1.0",
55
"private": true,
66
"dependencies": {
7+
"@fortawesome/free-brands-svg-icons": "^7.1.0",
78
"@fortawesome/free-regular-svg-icons": "^6.6.0",
89
"@fortawesome/free-solid-svg-icons": "^6.6.0",
910
"@fortawesome/react-fontawesome": "^0.2.2",
@@ -12,13 +13,11 @@
1213
"@testing-library/react": "^13.4.0",
1314
"@testing-library/user-event": "^13.5.0",
1415
"antd": "^5.21.4",
15-
"axios": "^1.7.2",
1616
"react": "^18.3.1",
1717
"react-dom": "^18.3.1",
1818
"react-router-dom": "^6.25.1",
1919
"react-scripts": "5.0.1",
2020
"react-scroll": "^1.9.0",
21-
"react-tooltip": "^5.28.0",
2221
"web-vitals": "^2.1.4"
2322
},
2423
"scripts": {

public/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<meta name="theme-color" content="#000000" />
99
<meta
1010
name="description"
11-
content="Web site created using create-react-app"
11+
content="INESC TEC Open Source Software Website"
1212
/>
1313
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
1414
<!--

public/manifest.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"short_name": "React App",
3-
"name": "Create React App Sample",
2+
"short_name": "INESC TEC OSS",
3+
"name": "INESC TEC Open Source Software Website",
44
"icons": [
55
{
66
"src": "favicon-16x16.ico",
@@ -30,6 +30,6 @@
3030
],
3131
"start_url": ".",
3232
"display": "standalone",
33-
"theme_color": "#000000",
33+
"theme_color": "#0C85B0",
3434
"background_color": "#ffffff"
3535
}

public/projects_input.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,40 @@
11
[
2+
{
3+
"project_area": "Energy",
4+
"project_name": "Data-driven tools for LV grids operation",
5+
"project_logo": null,
6+
"project_website": null,
7+
"project_description": "GridSights is a modular API for managing grid topology, processing historical data, and performing distributed state estimation to predict voltages at unmeasured nodes. VoltTune is a Python tool that detects and corrects voltage violations in distribution networks using a greedy optimisation algorithm, historical sensitivity matrices, and available flexibility (load reduction or injection).",
8+
"project_topic": "dd-tools-lv-grids",
9+
"project_tags": ["Energy", "lv-grids-ops"]
10+
},
11+
{
12+
"project_area": "Energy",
13+
"project_name": "Predigrid",
14+
"project_logo": null,
15+
"project_website": null,
16+
"project_description": "Modular forecasting service for MV and LV grid nodes integrates data ingestion, cleansing, and storage with state-of-the-art predictive models for short-term consumption and generation forecasting (up to 96 hours ahead). The service processes active and reactive power time series, incorporates external inputs such as numerical weather predictions, and computes error metrics to assess model accuracy. It also provides configurable access to forecasts and measurements through non-relational databases.",
17+
"project_topic": "predigrid",
18+
"project_tags": ["Energy", "forecasting", "mv-grids", "lv-grids"]
19+
},
20+
{
21+
"project_area": "Energy",
22+
"project_name": "FlexiHome",
23+
"project_logo": null,
24+
"project_website": null,
25+
"project_description": "Software architecture for HEMS that offers a modular way of exploring the systems, incorporating a set of services mainly for consumers, but also for retailers, DSO, and flexibility service providers. The services can be transversal (common to any HEMS flavour, such as account management), energy micro-services and agentic AI-based. Beyond the backend algorithms, it has a specific front end as a mobile app (HEMS connect) whose main goal is to show, inform, and manage the energy consumption of a household and optimise the different eligible loads.",
26+
"project_topic": "flexihome",
27+
"project_tags": ["Energy", "home-energy-management"]
28+
},
29+
{
30+
"project_area": "Energy",
31+
"project_name": "EV Forecasting",
32+
"project_logo": null,
33+
"project_website": null,
34+
"project_description": "Forecasting services and tools for electric vehicle related forecasting tasks.",
35+
"project_topic": "ev-forecasting",
36+
"project_tags": ["Energy", "forecasting", "ev"]
37+
},
238
{
339
"project_area": "Energy",
440
"project_name": "Predico",

src/App.css

Lines changed: 10 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,21 @@
11
body {
22
margin: 0;
3-
font-family: Arial, sans-serif;
4-
background-color: #121212;
5-
color: #fff;
63
}
74

85
.App {
96
text-align: center;
107
}
118

12-
.main-content {
13-
display: flex;
14-
justify-content: space-between;
15-
align-items: center;
16-
padding: 2rem;
9+
/* Page transition animation */
10+
.page-transition {
11+
animation: fadeIn 0.3s ease-in-out;
1712
}
1813

19-
.text-section {
20-
flex: 1;
21-
padding-right: 2rem;
22-
}
23-
24-
.text-section h1 {
25-
font-size: 4rem;
26-
line-height: 1.2;
27-
color: #2876B9;
28-
}
29-
30-
.text-section h1 span {
31-
display: block;
32-
}
33-
34-
.explore-link {
35-
display: inline-block;
36-
margin-top: 2rem;
37-
font-size: 1.5rem;
38-
color: #2876B9;
39-
text-decoration: none;
40-
}
41-
42-
.image-section {
43-
flex: 1;
44-
}
45-
46-
.main-image {
47-
width: 100%;
48-
max-width: 600px;
14+
@keyframes fadeIn {
15+
from {
16+
opacity: 0;
17+
}
18+
to {
19+
opacity: 1;
20+
}
4921
}

src/App.js

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,33 @@
1-
import React from 'react';
2-
import { Route, Routes } from 'react-router-dom';
1+
import React, { Suspense, lazy } from 'react';
2+
import { Route, Routes, useLocation } from 'react-router-dom';
33
import './App.css';
4-
import HomePage from './pages/HomePage';
5-
import ProjectsPage from './pages/ProjectsPage';
4+
5+
// Code splitting - lazy load pages
6+
const HomePage = lazy(() => import('./pages/HomePage'));
7+
const ProjectsPage = lazy(() => import('./pages/ProjectsPage'));
8+
const NotFoundPage = lazy(() => import('./pages/NotFoundPage'));
9+
10+
// Loading spinner component
11+
const PageLoader = () => (
12+
<div className="min-h-screen flex items-center justify-center bg-gradient-to-r from-dark-blue to-light-blue">
13+
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-white"></div>
14+
</div>
15+
);
616

717
function App() {
18+
const location = useLocation();
19+
820
return (
921
<div className="App">
10-
<Routes>
11-
<Route path="/" element={<HomePage />} />
12-
<Route path="/projects" element={<ProjectsPage />} />
13-
</Routes>
22+
<Suspense fallback={<PageLoader />}>
23+
<div key={location.pathname} className="page-transition">
24+
<Routes location={location}>
25+
<Route path="/" element={<HomePage />} />
26+
<Route path="/projects" element={<ProjectsPage />} />
27+
<Route path="*" element={<NotFoundPage />} />
28+
</Routes>
29+
</div>
30+
</Suspense>
1431
</div>
1532
);
1633
}

src/App.test.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
import { render, screen } from '@testing-library/react';
1+
import { render } from '@testing-library/react';
2+
import { MemoryRouter } from 'react-router-dom';
23
import App from './App';
34

4-
test('renders learn react link', () => {
5-
render(<App />);
6-
const linkElement = screen.getByText(/learn react/i);
7-
expect(linkElement).toBeInTheDocument();
5+
test('renders without crashing', () => {
6+
render(
7+
<MemoryRouter>
8+
<App />
9+
</MemoryRouter>
10+
);
811
});

src/assets/predico.png

83.2 KB
Loading

0 commit comments

Comments
 (0)