A modern educational content platform for Santillana, providing students and educators with access to digital books and educational resources.
- β¨ Overview
- π Features
- π οΈ Tech Stack
- π Project Structure
- βοΈ Prerequisites
- π¦ Installation
- π» Development
- ποΈ Building for Production
- π Architecture Guidelines
- π¨ Design Resources
- π License
- π¬ Support
Nuba Santillana is a web application that allows users to register, activate books using codes, and access digital educational content. The platform includes features similar to existing Santillana platforms (TuCLase/ValeSaber) with enhanced capabilities for content management and expiration handling.
Key Highlights:
- π Educational content management system
- π Secure user authentication and authorization
- π± Fully responsive mobile-first design
- βΏ WCAG-compliant accessibility
- π¨ Modern UI following Santillana brand guidelines
| Feature | Description |
|---|---|
| π€ User Registration & Authentication | Secure user registration with email-based password recovery |
| π Book Activation | Code validation using the existing Claves Libros API |
| π Active Books Listing | Display of active books with beautiful cover images |
| π¬ Digital Content Access | Support for multiple content formats: |
| β’ π¦ ZIP (HTML packages) | |
| β’ π PDF documents | |
| β’ π΅ MP3 audio files | |
| β’ π₯ MP4 video files | |
| ποΈ Content Sections | Configurable sections that can be enabled/disabled from the backend |
| β° Expiration Management | Flexible code expiration options: |
| β’ βΎοΈ No expiration | |
| β’ π Expires X days after activation | |
| β’ π Expires on December 31st of the activation year | |
| π Access Analytics | User access tracking for: |
| β’ π Access per user to each book | |
| β’ π Access per user to each content item | |
| π οΈ Content Management BackOffice | Administrative interface for content management |
- π± Responsive Design: Mobile-first, fully responsive UX
- π¨ Modern UI: Built with Tailwind CSS and following Santillana brand guidelines (Teal #00AEB6)
- βΏ Accessibility: WCAG-compliant with proper semantic HTML and keyboard navigation
| Category | Technology | Version |
|---|---|---|
| π Framework | Next.js (App Router) | 14.2.5 |
| π» Language | TypeScript | 5.4.5 |
| π¨ Styling | Tailwind CSS | 3.4.10 |
| π Forms | React Hook Form + Zod | Latest |
| β¨ Animations | Framer Motion, GSAP | Latest |
| π― Icons | Lucide React | Latest |
| π¦ Package Manager | pnpm | 9.0.0 |
| ποΈ Architecture | Monorepo (pnpm workspaces) | - |
nuba/
βββ π¦ packages/
β βββ π web/ # Next.js web application
β βββ π± app/ # App Router pages and layouts
β β βββ π¨βπΌ (admin)/ # Admin routes
β β βββ π (app)/ # Authenticated user routes
β β βββ π (auth)/ # Authentication routes
β β βββ π (public)/ # Public routes
β βββ π§© components/ # React components
β β βββ π auth/ # Authentication components
β β βββ π books/ # Book-related components
β β βββ π site/ # Site-wide components
β β βββ π¨ ui/ # UI primitives
β βββ π οΈ lib/ # Utilities and helpers
β βββ π public/ # Static assets
β βββ π§ templates/ # Email templates
βββ π package.json # Root package.json
βββ βοΈ pnpm-workspace.yaml # Workspace configuration
Before you begin, ensure you have the following installed:
| Requirement | Version | Installation |
|---|---|---|
| π’ Node.js | 18.x or higher | Download |
| π¦ pnpm | 9.0.0 or higher | npm install -g pnpm@9.0.0 |
git clone <repository-url>
cd nubapnpm installπ‘ This will install dependencies for both the root workspace and the
packages/webpackage.
Option 1: From the root directory (Recommended)
pnpm devOption 2: Navigate to the web package
cd packages/web
pnpm devπ The application will be available at
http://localhost:3000
| Command | Description |
|---|---|
pnpm dev |
π Start the development server |
pnpm build |
ποΈ Build the application for production |
pnpm start |
|
pnpm lint |
π Run ESLint |
| Command | Description |
|---|---|
pnpm dev |
π Start the development server |
pnpm build |
ποΈ Build for production |
pnpm start |
|
pnpm lint |
π Run linting |
Create a .env.local file in packages/web/ with the necessary environment
variables.
β οΈ Note: Check with the team for required configuration values.
Example structure:
# .env.local
NEXT_PUBLIC_API_URL=your_api_url
DATABASE_URL=your_database_url
# ... other variablespnpm buildpnpm startβ Your production-ready application will be running!
This project follows strict architectural guidelines documented in nested
agents.md files:
| Principle | Description |
|---|---|
| π₯οΈ Server Components First | Prefer Server Components; use "use client" only for interactive leaves |
| π Server Actions | All mutations via Server Actions (no API routes) |
| π TypeScript | Strict typing with explicit interfaces for domain entities |
| π¨ Styling | Tailwind CSS with brand colors (Teal #00AEB6, hover #00959C) and 16px border radius |
| βΏ Accessibility | Focus-visible, proper labels, semantic HTML |
- π
agents.md- Root architecture overview - π
packages/web/agents.md- Web app standards - π£οΈ
packages/web/app/agents.md- Routing and component patterns - π§©
packages/web/components/agents.md- Component patterns
| Resource | Link |
|---|---|
| π± Figma Prototype (Mobile) | View Prototype |
| π¨ Figma Design File | View Design |
For questions or issues, please contact the development team.
Made with β€οΈ by Baleares Group