A modern application for visualizing student information, built with Next.js 15 and React 19. Dataviewer Beta leverages data from the LoP platform to provide an intuitive and efficient interface for exploring and analyzing student-related data. With Turbopack for ultra-fast development and Tailwind CSS for seamless styling, this project ensures a smooth and responsive user experience.
- 🖥 shadcn/ui Component Library - Accessible, customizable components built with Radix UI primitives
- ⚡ Next.js 15 with Turbopack for blazing fast development
- 🎨 Tailwind CSS with animations and merge utilities
- 🔍 Strict ESLint + Prettier code quality setup
- 🐶 Husky Git hooks with commit message validation
- 🛠 TypeScript-first development
- Node.js 18.17+
- npm 9.x+
- Clone the repository:
git clone https://github.com/Natalnet/dataviewer-beta-frontend.git
cd dataviewer-beta-frontend
- Install dependencies:
npm install
- Set up Git hooks (automatically configured after install):
npm run prepare
In the project directory, you can run:
npm run dev
: Start development server with Turbopacknpm run build
: Create production buildnpm run start
: Start production servernpm run lint
: Check for ESLint errorsnpm run prepare
: Set up Git hooks (auto-runs after install)
This project uses:
- ESLint with Next.js core rules + Prettier integration
- Pre-commit hooks with
lint-staged
- Conventional commit message validation via
commitlint
- TypeScript strict type checking
Git hooks will automatically:
- Format code with Prettier
- Run ESLint checks
- Validate commit messages
This project uses shadcn/ui components with the following stack:
- Radix UI Primitives - Unstyled, accessible component primitives
- Tailwind CSS - Utility-first styling with
tailwind-merge
for class combination - CLSX - Conditional class handling
- CVA (Class Variance Authority) - Type-safe component variants
- Slot - Radix Slot utility for component composition
Components follow shadcn/ui conventions:
src/
components/
ui/
button.tsx # Component logic and style variants (using cva with Tailwind classes)
- Use the shadcn CLI (if configured):
npx shadcn-ui@latest add button
- Manual creation example:
// components/custom-card.tsx
import { cva } from 'class-variance-authority'
const cardVariants = cva('rounded-lg border bg-card text-card-foreground', {
variants: {
variant: {
default: 'shadow-sm',
elevated: 'shadow-lg'
}
}
})
- Create your feature branch:
git checkout -b feature/your-feature
- Commit your changes (follow conventional commit format):
git commit -m "feat: add new data visualization component"
- Push to the branch:
git push origin feature/your-feature
- Open a Pull Request
Built with the shadcn/ui design system. Documentation for components can be found in their respective files under src/components/ui
.