Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
cce6997
doc: database schema - 1-database-schema (#5)
petrubraha Dec 19, 2025
6e35c9a
doc: README, original goal and updated tech stack
petrubraha Jan 14, 2026
f55d975
tsp-design (#11)
petrubraha Feb 20, 2026
7d9d617
absolut nimic useful
Vldddddd1 Dec 8, 2025
70f2418
ups1
Vldddddd1 Dec 8, 2025
6d35cd4
fix font, display, others
Vldddddd1 Dec 8, 2025
80ed241
rotunjit cate colturi s-a putut.
Vldddddd1 Dec 8, 2025
136f025
Added a radial-gradient background
timpulzboara Dec 9, 2025
066105c
fix
Vldddddd1 Dec 9, 2025
5d65d2f
fix eleements
Vldddddd1 Dec 9, 2025
06e601f
font landing
Vldddddd1 Dec 9, 2025
bd31993
Added Drop Shadow to the Home Elements
timpulzboara Dec 9, 2025
a328030
Update Texte Copywriting
timpulzboara Dec 9, 2025
ab03a9a
Retouched the buttons and title for the home page
timpulzboara Dec 10, 2025
b686945
New Logo + (temp) BG Images
timpulzboara Dec 10, 2025
8cbcb0d
The (temp) BG images are not coming out of the page anymore
timpulzboara Dec 10, 2025
c15f07f
Updated Radial Gradient + letter spacing
timpulzboara Dec 10, 2025
10a9d79
folder issue
Vldddddd1 Dec 12, 2025
39c301b
am stat 2 ore sa fac un carousel si sa nu ma decid ce meniu fac!
Vldddddd1 Dec 12, 2025
8b9d97b
menubar wip mi a mancat zilele animatia
Vldddddd1 Dec 12, 2025
7977be7
renamed pages incercare routing
Vldddddd1 Dec 12, 2025
c4da1c5
acuma imi merge!
timpulzboara Dec 13, 2025
55915a8
added images for the home carousel
timpulzboara Dec 14, 2025
cf54a82
removed: old directory
petrubraha Feb 7, 2026
fbbc4fb
rollback readme
petrubraha Mar 9, 2026
74b0667
rollback gitignore
petrubraha Mar 9, 2026
870d63c
npm audit fix
petrubraha Mar 9, 2026
4dc699f
feat: api modelling submodule
petrubraha Mar 12, 2026
a0a6d9e
feat: pages
petrubraha Mar 12, 2026
7b11de6
almost builds the entire solution
petrubraha Mar 12, 2026
087c466
removed useless doc dir
petrubraha Mar 12, 2026
4874a03
test
petrubraha Mar 12, 2026
10f45ef
linted the code with prettier
petrubraha Mar 12, 2026
5d64e7c
feat: use generated models
petrubraha Mar 13, 2026
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
12 changes: 2 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,10 @@ The primary goal is to help users find products efficiently. The core functional

---

## ⚛ Technology Stack

This project follows a **Monorepo** approach.

- **Frontend**: React with TypeScript.
- **Backend**: Java.
- **Database**: PostgreSQL.
- **API Modeling**: [Smithy](https://smithy.io/2.0/) (Interface Definition Language).

## 🛠 Build Instructions

TODO
- Install Smithy CLI
- Install yarn

### Execution

Expand Down
18 changes: 9 additions & 9 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'
import js from "@eslint/js";
import globals from "globals";
import reactHooks from "eslint-plugin-react-hooks";
import reactRefresh from "eslint-plugin-react-refresh";
import tseslint from "typescript-eslint";
import { defineConfig, globalIgnores } from "eslint/config";

export default defineConfig([
globalIgnores(['dist']),
globalIgnores(["dist"]),
{
files: ['**/*.{ts,tsx}'],
files: ["**/*.{ts,tsx}"],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
Expand All @@ -20,4 +20,4 @@ export default defineConfig([
globals: globals.browser,
},
},
])
]);
17 changes: 17 additions & 0 deletions package-lock.json

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

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
"react-router-dom": "^7.10.1"
},
"devDependencies": {
"@inandout/client": "^0.0.1",
"@eslint/js": "^9.39.1",
"@inandout/client": "^0.0.1",
"@types/node": "^24.10.1",
"@types/react": "^19.2.5",
"@types/react-dom": "^19.2.3",
Expand All @@ -39,6 +39,7 @@
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"globals": "^16.5.0",
"prettier": "3.8.1",
"typescript": "~5.9.3",
"typescript-eslint": "^8.46.4",
"vite": "^7.2.4"
Expand Down
44 changes: 44 additions & 0 deletions src/App.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/* #root {

Check warning on line 1 in src/App.css

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this commented out code.

See more on https://sonarcloud.io/project/issues?id=InAndOut-Stack_InAndOut-Frontend&issues=AZzjtxHaVeL0hYeM5JT4&open=AZzjtxHaVeL0hYeM5JT4&pullRequest=1
overflow-x: hidden;
background: #FCF4E7;
} */

@font-face {
font-family: 'Creato';
src: url('./assets/fonts/creato/CreatoDisplay-Medium.otf') format('otf');
font-weight: normal;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Creato';
src: url('./assets/fonts/creato/CreatoDisplay-Bold.otf') format('otf');
font-weight: 700;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Creato';
src: url('./assets/fonts/creato/CreatoDisplay-ExtraBold.otf') format('otf');
font-weight: 800;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Creato';
src: url('./assets/fonts/creato/CreatoDisplay-Black.otf') format('otf');
font-weight: 1000;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Creato';
src: url('./assets/fonts/creato/CreatoDisplay-BlackItalic.otf') format('otf');
font-weight: 1200;
font-style: normal;
font-display: swap;
}
38 changes: 38 additions & 0 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { ThemeProvider } from "@mui/material/styles";
import { CssBaseline } from "@mui/material";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";

import HomePage from "./pages/home-page";
import StoreSelectionPage from "./pages/store-selection-page";
import StandSelectionPage from "./pages/stand-selection-page";
import ItineraryPreviewPage from "./pages/itinerary-preview-page";

import CustomBackground from "./components/background/background";
import "./app.css";
import theme from "./themes/theme";

function App() {
return (
<CustomBackground>
<ThemeProvider theme={theme}>
<CssBaseline />
<Router>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/stores" element={<StoreSelectionPage />} />
<Route
path="/stores/:storeId/stands"
element={<StandSelectionPage />}
/>
<Route
path="/itinerary-preview"
element={<ItineraryPreviewPage />}
/>
</Routes>
</Router>
</ThemeProvider>
</CustomBackground>
);
}

export default App;
Binary file added src/assets/fonts/creato/CreatoDisplay-Black.otf
Binary file not shown.
Binary file not shown.
Binary file added src/assets/fonts/creato/CreatoDisplay-Bold.otf
Binary file not shown.
Binary file not shown.
Binary file added src/assets/fonts/creato/CreatoDisplay-Medium.otf
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/carousel-images/grapefruit.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/carousel-images/kiwi.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/carousel-images/paine.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/carousel-images/pasta.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/carousel-images/peste.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/carousel-images/salata.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/carousel-images/tomato.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/images-under-title.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/inandout-title.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions src/components/background/background.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import React from "react";
import { Stack } from "@mui/material";
import colors from "../../themes/colors";

const CustomBackground: React.FC<{ children: React.ReactNode }> = ({
children,
}) => {
return (
<Stack
sx={{
position: "relative",
width: "100%",
minHeight: "100vh",
overflow: "hidden",
display: "flex",
justifyContent: "center",
alignItems: "center",
}}
>
<Stack
sx={{
position: "absolute",
inset: 0,
zIndex: -100,
pointerEvents: "none",
backgroundImage: `radial-gradient(
circle at 5% 5%,
${colors.greenColor} 10%,
${colors.orangeColor} 18%,
${colors.whiteColor} 38%,
${colors.whiteColor} 41%,
${colors.orangeColor} 53%,
${colors.greenColor} 80%,
${colors.whiteColor} 90%
)`,
transform: "scale(1.1)",
transformOrigin: "center center",
}}
/>
<Stack
sx={{
position: "relative",
zIndex: 10,
width: "100%",
}}
>
{children}
</Stack>
</Stack>
);
};

export default CustomBackground;
31 changes: 31 additions & 0 deletions src/components/carousel/carousel-container.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Stack } from "@mui/material";

interface CarouselContainerProps {
image: string;
zindex?: number;
}

function CarouselContainer({ image, zindex }: CarouselContainerProps) {

Check warning on line 8 in src/components/carousel/carousel-container.tsx

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Mark the props of the component as read-only.

See more on https://sonarcloud.io/project/issues?id=InAndOut-Stack_InAndOut-Frontend&issues=AZzjtxFyVeL0hYeM5JT0&open=AZzjtxFyVeL0hYeM5JT0&pullRequest=1
return (
<Stack
sx={{
position: "absolute",
width: "100%",
height: "100%",
maxWidth: "200px",
maxHeight: "200px",
borderRadius: "70px",
display: "flex",
justifyContent: "center",
alignItems: "center",
zIndex: zindex,
backgroundImage: `url(${image})`,
backgroundPosition: "center",
filter: `drop-shadow(0.3px 0px 0px rgba(0, 0, 0, 0.5))
drop-shadow(0px 0.5px 1.5px rgba(0, 0, 0, 0.5))`,
}}
/>
);
}

export default CarouselContainer;
97 changes: 97 additions & 0 deletions src/components/carousel/carousel-final.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import { Box } from "@mui/material";
import { motion } from "framer-motion";

import CarouselContainer from "./carousel-container";

import images from "./images";

//asa sa fie si img!!!!
const size = 200;
const overlap = -80;
const offset = 60;

const generateContent = (count: number) => {
const imageArray = Object.values(images);
return Array.from({ length: count }, (_, i) => ({
id: i,
url: imageArray[i % imageArray.length],
}));
};

//passing props to each component
interface ParallaxItemProps {
image: string;
index: number;
}

const ParallaxItem = ({ image, index }: ParallaxItemProps) => {
const xOffset = index % 2 === 1 ? offset : -offset;
return (
<Box
sx={{
display: "flex",
justifyContent: "center",
width: "100%",
marginTop: `${overlap}px`,
position: "relative",
}}
>
<Box sx={{ transform: `translateX(${xOffset}px)` }}>
<Box
sx={{
position: "relative",
width: `${size}px`,
height: `${size}px`,
}}
>
<CarouselContainer image={image} zindex={index} />
</Box>
</Box>
</Box>
);
};

function CarouselElement() {
const itemCount = 14;
const items = generateContent(itemCount);
const dupeItems = [...items, ...items];
const startHeight = itemCount * (size + overlap);

return (
<Box
sx={{
position: "fixed",
top: "0px",
left: "0px",
width: "100%",
height: "100%",
zIndex: -50,
overflow: "hidden",
justifyContent: "center",
pointerEvents: "none",
}}
>
<motion.div
animate={{ y: [-startHeight, 0] }}
transition={{
duration: 80,
repeat: Infinity,
repeatType: "loop",
ease: "linear",
}}
style={{
display: "flex",
flexDirection: "column",
alignItems: "center",
marginTop: `-${overlap}px`,
}}
>
{dupeItems.map((item, index) => (
<ParallaxItem key={index} image={item.url} index={index} />

Check warning on line 90 in src/components/carousel/carousel-final.tsx

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Do not use Array index in keys

See more on https://sonarcloud.io/project/issues?id=InAndOut-Stack_InAndOut-Frontend&issues=AZzjtxHJVeL0hYeM5JT1&open=AZzjtxHJVeL0hYeM5JT1&pullRequest=1
))}
</motion.div>
</Box>
);
}

export default CarouselElement;
15 changes: 15 additions & 0 deletions src/components/carousel/images.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//url din assets ./../../assets/carousel/
//200x200 sa arate bn

const EImages = {
image1: "./src/assets/images/carousel-images/frigaruie.png",
image2: "./src/assets/images/carousel-images/tomato.jpg",
image3: "./src/assets/images/carousel-images/grapefruit.jpg",
image4: "./src/assets/images/carousel-images/kiwi.jpg",
image5: "./src/assets/images/carousel-images/peste.jpg",
image6: "./src/assets/images/carousel-images/salata.jpg",
image7: "./src/assets/images/carousel-images/pasta.jpg",
image8: "./src/assets/images/carousel-images/paine.jpg",
};

export default EImages;
10 changes: 10 additions & 0 deletions src/components/choice/choice-page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { useState } from "react";

function Choice() {
const [isLandingPage] = useState<boolean>(false);
const [isChoicePage] = useState<boolean>(!isLandingPage);

return isChoicePage ? <></> : null;
}

export default Choice;
Loading