KINO-NextJS – Technical Stack
+ + {stackSections.map((section) => ( +{section.title}
+-
+ {section.items.map(([title, ...desc], i) => (
+
- + {title} – {desc} + + ))} +
diff --git a/src/app/about/About.module.scss b/src/app/about/About.module.scss
new file mode 100644
index 0000000..3d8ede0
--- /dev/null
+++ b/src/app/about/About.module.scss
@@ -0,0 +1,72 @@
+.container {
+ padding: 2rem;
+ max-width: 800px;
+ margin: 0 auto;
+ font-family: 'Segoe UI', sans-serif;
+ color: #111827;
+
+ h1 {
+ color: #03658c;
+ font-size: 2rem;
+ margin-bottom: 1rem;
+ }
+
+ h2 {
+ color: #03658c;
+ margin-top: 2rem;
+ font-size: 1.3rem;
+ }
+
+ ul {
+ padding-left: 1.5rem;
+ line-height: 1.7;
+
+ li {
+ margin-bottom: 0.5rem;
+
+ strong {
+ font-weight: bold;
+ }
+
+ code {
+ background-color: #e5e7eb;
+ padding: 0.2rem 0.4rem;
+ border-radius: 4px;
+ font-size: 0.95rem;
+ font-family: monospace;
+ }
+ }
+ }
+}
+
+.buttonContainer {
+ margin-top: 3rem;
+ text-align: center;
+}
+
+.backButton {
+ background-color: #03658c;
+ color: #fff;
+ border: none;
+ padding: 0.7rem 1.5rem;
+ font-size: 1rem;
+ border-radius: 6px;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+
+ &:hover {
+ background-color: #52b3d9;
+ }
+}
+
+.active {
+ outline: 2px solid #2563eb;
+ outline-offset: 2px;
+ font-weight: bold;
+}
+
+.activeTitle {
+ border-left: 5px solid #1d4ed8;
+ padding-left: 10px;
+ color: #1d4ed8;
+}
diff --git a/src/app/about/page.jsx b/src/app/about/page.jsx
index 2235454..5c12e66 100644
--- a/src/app/about/page.jsx
+++ b/src/app/about/page.jsx
@@ -1,3 +1,92 @@
+import styles from './About.module.scss'
+import Link from 'next/link'
+
+const stackSections = [
+ {
+ title: 'Frontend',
+ items: [
+ ['Next.js', 'React framework for server-rendered apps and API routes.'],
+ ['React', 'UI library used for building interactive components.'],
+ ['SCSS', 'Used for component-based styling.'],
+ ['fetch API', 'To communicate with the backend and OMDb API.'],
+ ],
+ },
+ {
+ title: 'Backend',
+ items: [
+ ['Next.js API Routes', 'Server logic handled inside ', app/api/, ' directory.'],
+ ['MongoDB Atlas', 'Cloud-hosted NoSQL database service.'],
+ [
+ 'Mongoose',
+ 'ODM used for defining models like ',
+ Movie,
+ ' and ',
+ Screening,
+ '.',
+ ],
+ ['OMDb API', 'External API for retrieving movie metadata.'],
+ [
+ 'Environment Variables',
+ .env,
+ ' used for keys like ',
+ MONGODB_URI,
+ ' and ',
+ OMDB_API_KEY,
+ '.',
+ ],
+ ],
+ },
+ {
+ title: 'Testing',
+ items: [
+ ['Jest', 'JavaScript testing framework for running unit tests.'],
+ ['jest.unstable_mockModule', 'For mocking ES module imports during tests.'],
+ ['formdata-node', 'Simulates ', formData(), ' in a Node.js environment.'],
+ ],
+ },
+ {
+ title: 'Tooling & Configuration',
+ items: [
+ [
+ 'ECMAScript Modules (ESM)',
+ 'Modern syntax using ',
+ import/export,
+ " and Node's ",
+ --experimental-vm-modules,
+ '.',
+ ],
+ ['cross-env', 'Sets environment variables cross-platform in scripts.'],
+ [
+ 'Alias (@)',
+ 'Path shortcuts like ',
+ @/lib/...,
+ ' mapped in ',
+ jest.config.js,
+ ' using ',
+ moduleNameMapper,
+ '.',
+ ],
+ ],
+ },
+]
+
export default function About() {
- return