Skip to content

blockful/blockful-portal

Repository files navigation

GateFul - Blockful's Portal

A modern Blockful's portal built with Next.js 15, React 19, TypeScript, and Tailwind CSS 4, providing essential internal management features for companies.

πŸš€ Features

βœ… Implemented

  • Dashboard: Overview with statistics and quick actions
  • Reimbursement System: Complete form with validation and file upload
  • OOO (Out of Office) Status: Absence configuration with personalized messages
  • Internal Messaging: Chat system between employees
  • Blockful News Portal: News feed with filters and categories
  • Calendar: Event visualization with Google Calendar integration
  • Responsive Header: Adaptive navigation for desktop and mobile
  • Dark/Light Theme: Theme switching with smooth transitions
  • Sound Effects: Interactive audio feedback using Howler.js
  • Authentication: NextAuth.js integration with GitHub OAuth

πŸ”§ Technologies Used

  • Next.js 15: React framework with App Router
  • React 19: UI library with latest features
  • TypeScript: Static typing for JavaScript
  • Tailwind CSS 4: Utility-first CSS framework
  • React Hook Form: Form management with validation
  • Zod: Schema validation
  • Lucide React: Modern icon library
  • date-fns: Date manipulation utilities
  • Howler.js: Audio library for sound effects
  • NextAuth.js: Authentication solution
  • Next Themes: Theme management

πŸ“¦ Installation

  1. Clone the repository
git clone <repository-url>
cd portal
  1. Install dependencies
npm install
# or
yarn install
# or
pnpm install
  1. Run the development server
npm run dev
# or
yarn dev
# or
pnpm dev
  1. Access the application Open http://localhost:3000 in your browser.

πŸ—οΈ Project Structure

portal/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ page.tsx                    # Main dashboard
β”‚   β”‚   β”œβ”€β”€ reimbursement/
β”‚   β”‚   β”‚   └── page.tsx                # Reimbursement form
β”‚   β”‚   β”œβ”€β”€ ooo/
β”‚   β”‚   β”‚   └── page.tsx                # OOO status configuration
β”‚   β”‚   β”œβ”€β”€ messages/
β”‚   β”‚   β”‚   └── page.tsx                # Internal messaging system
β”‚   β”‚   β”œβ”€β”€ news/
β”‚   β”‚   β”‚   └── page.tsx                # Blockful news portal
β”‚   β”‚   β”œβ”€β”€ calendar/
β”‚   β”‚   β”‚   └── page.tsx                # Event calendar
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   └── auth/
β”‚   β”‚   β”‚       └── [...nextauth]/
β”‚   β”‚   β”‚           └── route.ts        # NextAuth API routes
β”‚   β”‚   β”œβ”€β”€ shared/
β”‚   β”‚   β”‚   β”œβ”€β”€ libs/
β”‚   β”‚   β”‚   β”‚   └── cn.ts               # Utility functions
β”‚   β”‚   β”‚   └── server/
β”‚   β”‚   β”‚       └── auth.ts             # Server-side auth utilities
β”‚   β”‚   β”œβ”€β”€ globals.css                 # Global styles
β”‚   β”‚   └── layout.tsx                  # Root layout
β”‚   └── components/
β”‚       β”œβ”€β”€ Header.tsx                  # Responsive header component
β”‚       β”œβ”€β”€ ThemeSwitch.tsx             # Theme toggle component
β”‚       └── ui/                         # Reusable UI components
β”œβ”€β”€ public/
β”‚   └── sounds/                         # Audio files for interactions
β”œβ”€β”€ package.json
└── README.md

πŸ“± Pages and Features

🏠 Dashboard (/)

  • Overview statistics and metrics
  • Quick action cards for main features
  • Recent activity display
  • Responsive grid layout
  • Dark/light theme support

πŸ’° Reimbursement System (/reimbursement)

  • Complete form with Zod validation
  • File upload for receipts and documents
  • Expense categorization
  • Real-time form validation
  • Responsive design with accessibility features

πŸ–οΈ OOO Status (/ooo)

  • Absence period configuration
  • Customizable absence messages
  • Emergency contact information
  • Active/inactive status toggle
  • Date range validation

πŸ’¬ Internal Messaging (/messages)

  • Real-time chat interface
  • Contact list with online status
  • Message search functionality
  • Unread message indicators
  • Responsive chat layout

πŸ“° Blockful News (/news)

  • News feed with categories
  • Search and filtering options
  • Important news highlighting
  • Tag-based categorization
  • Read/unread status tracking

πŸ“… Calendar (/calendar)

  • Monthly event visualization
  • Event details and descriptions
  • Color-coded event categories
  • Navigation between months
  • Google Calendar integration ready

🎨 UI/UX Features

Theme System

  • Seamless dark/light theme switching
  • Persistent theme preferences
  • Smooth color transitions
  • Consistent design language

Sound Effects

  • Interactive audio feedback
  • Gaming-inspired sound design
  • Configurable audio settings
  • Enhanced user experience

Responsive Design

  • Mobile-first approach
  • Adaptive navigation
  • Touch-friendly interfaces
  • Cross-device compatibility

πŸ”§ Configuration

Environment Variables

Create a .env.local file in the root directory:

# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-key

# GitHub OAuth (for authentication)
GITHUB_ID=your-github-client-id
GITHUB_SECRET=your-github-client-secret

# Google Calendar (for future integration)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret

Authentication Setup

  1. Create a GitHub OAuth App

    • Go to GitHub Settings > Developer settings > OAuth Apps
    • Set callback URL to http://localhost:3000/api/auth/callback/github
  2. Configure NextAuth

    • Update environment variables with your GitHub credentials
    • Customize authentication providers as needed

GitHub API Configuration

Required scopes: read:org, read:user

πŸ“‹ Development

Available Scripts

npm run dev      # Start development server
npm run build    # Build for production
npm run start    # Start production server
npm run lint     # Run ESLint

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

πŸ“ž Support

For questions or support:

  • Open an issue on GitHub
  • Contact the development team
  • Check the documentation

Built with ❀️ to enhance employee experience and productivity

About

anticapture portal hackathon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published