Frontend application for the Sessions Portal built with Next.js, React, and TypeScript.
- Google OAuth-based login
- Video listing, filtering, and search flows
- Video detail pages with recommendations
- RTK Query-powered data fetching and Redux state management
- Storybook and Jest support for UI and test workflows
- Node.js 22 LTS
- npm 10.2.4 or later
-
Clone the repository
git clone https://github.com/arbisoft/session-portal-frontend.git session-portal cd session-portal -
Install and use Node.js 22 LTS
nvm install 22 nvm use 22
-
Install dependencies
npm install
-
Copy example environment file
cp example.env.local .env.local
-
Run development server
npm run dev
Copy example.env.local to .env.local and set:
NEXT_PUBLIC_BASE_URLfor the backend API hostNEXT_PUBLIC_CLIENT_IDfor Google OAuthNEXT_PUBLIC_GTM_IDfor Google Tag Manager
| Script | Purpose |
|---|---|
npm run dev |
Start development server |
npm run build |
Create production build |
npm run build:e2e |
Build for CI E2E runs after bootstrapping .env.local |
npm run start |
Start production server |
npm run lint |
Run ESLint and TypeScript checks |
npm run typecheck |
Run TypeScript checks only |
npm run test |
Run Jest tests |
npm run test:cov |
Run Jest with coverage |
npm run release |
Run the configured release-it release flow |
npm run generate:resource |
Generate scaffolding with Hygen |
npm run sb |
Start Storybook |
npm run build-storybook |
Build Storybook |
The app uses the Next.js App Router with feature modules under src/features/, reusable UI in src/components/, and Redux Toolkit with RTK Query in src/redux/.
See docs/ARCHITECTURE.md for a deeper architecture overview.
Frontend API integration is documented in docs/state-management-and-api-layer.md, including authentication and event-related endpoints.
Run tests:
npm run testRun with coverage:
npm run test:covCoverage output is written to ./coverage/. The test suite includes unit tests for utilities, middleware, Redux state, and feature components with Jest and React Testing Library.
Containerized deployment details are documented in docs/deployment-and-release.md.
- If API-backed screens do not load, verify that
.env.localcontains a validNEXT_PUBLIC_BASE_URL. - If Google login does not initialize, verify
NEXT_PUBLIC_CLIENT_IDandNEXT_PUBLIC_GTM_IDin.env.local.
Please use the fork-based workflow documented in CONTRIBUTING.md.
- Contribution guide:
CONTRIBUTING.md - Changelog:
CHANGELOG.md - Project docs index:
docs/README.md
Boilerplate Inspiration (https://github.com/brocoders/extensive-react-boilerplate).