IT Jobs Board & Chat

A full-stack application for posting IT job opportunities with a public chat room for discussing opportunities.

Features

  • šŸ“‹ Job Postings: Create, view, and manage IT job postings
  • šŸ’¬ Public Chat: Real-time chat room for discussing opportunities
  • šŸ” Job Search: Filter and search through job postings
  • šŸ“± Responsive Design: Works on desktop and mobile

Tech Stack

  • Backend: Hono.js API framework
  • Frontend: React with TypeScript
  • Database: SQLite for job postings and chat messages
  • Styling: TailwindCSS
  • Real-time: Server-sent events for chat updates

Project Structure

ā”œā”€ā”€ backend/
│   ā”œā”€ā”€ database/
│   │   ā”œā”€ā”€ migrations.ts    # Database schema setup
│   │   └── queries.ts       # Database query functions
│   ā”œā”€ā”€ routes/
│   │   ā”œā”€ā”€ jobs.ts         # Job posting endpoints
│   │   └── chat.ts         # Chat endpoints
│   └── index.ts            # Main API server
ā”œā”€ā”€ frontend/
│   ā”œā”€ā”€ components/
│   │   ā”œā”€ā”€ App.tsx         # Main application component
│   │   ā”œā”€ā”€ JobBoard.tsx    # Job listings component
│   │   ā”œā”€ā”€ JobForm.tsx     # Job posting form
│   │   ā”œā”€ā”€ ChatRoom.tsx    # Chat interface
│   │   └── JobCard.tsx     # Individual job display
│   ā”œā”€ā”€ index.html          # Main HTML template
│   └── index.tsx           # Frontend entry point
└── shared/
    └── types.ts            # Shared TypeScript types

API Endpoints

Jobs

  • GET /api/jobs - Get all job postings
  • POST /api/jobs - Create new job posting
  • GET /api/jobs/:id - Get specific job posting

Chat

  • GET /api/chat/messages - Get chat messages
  • POST /api/chat/messages - Send new message
  • GET /api/chat/stream - Server-sent events for real-time updates

Getting Started

This is a Val Town project. The main entry point is backend/index.ts which serves both the API and frontend files.