No description
Find a file
friday-bot ef8d281b2b v2: MongoDB backend + /manage dashboard
- Replace Express 4 backend with Express 5 + Mongoose 8 + TypeScript 5.8
- Add MongoDB 8.0 container via docker-compose
- Add JWT auth (jose), argon2 password hashing, zod validation, multer uploads
- Models: BoardMember, Event, GalleryItem, Sponsor, Minute, Member, User
- Full CRUD REST API for all content types
- Seed script to populate MongoDB from hardcoded data
- Wire all frontend components to fetch from API (no JSX changes)
- Add /manage dashboard: login + tabs for Board, Events, Gallery, Sponsors, Minutes, Members
- Uploads volume for persistent file storage across deploys
2026-05-27 16:23:12 -06:00
client v2: MongoDB backend + /manage dashboard 2026-05-27 16:23:12 -06:00
cline_docs Update memory bank: document Resources page and mobile menu fix 2026-03-11 15:37:01 -06:00
server v2: MongoDB backend + /manage dashboard 2026-05-27 16:23:12 -06:00
.env Update email credentials to use working DeafGain system account 2025-09-11 16:05:40 -06:00
.gitattributes Fresh update 2024-10-14 14:15:30 -05:00
.gitignore Update web packages: React 19, React Router 7, Framer Motion 12, and dependencies 2025-12-15 08:59:00 -07:00
docker-compose.yml v2: MongoDB backend + /manage dashboard 2026-05-27 16:23:12 -06:00
Dockerfile v2: MongoDB backend + /manage dashboard 2026-05-27 16:23:12 -06:00
README.md Fresh update 2024-10-14 14:15:30 -05:00
stack.env v2: MongoDB backend + /manage dashboard 2026-05-27 16:23:12 -06:00
VideoCaptionsHD.mov Add new video file and 5 future events to calendar 2025-10-04 09:56:28 -06:00

Missoula Council of the Deaf, Inc. Website

This repository contains the source code for the Missoula Council of the Deaf, Inc. (MCDi) website. The project is built using a modern web stack with React for the frontend and Express.js for the backend, both implemented in TypeScript. The application is containerized using Docker for easy deployment and scalability.

Features

  • Responsive design using Tailwind CSS
  • Dynamic UI components with React and Framer Motion for animations
  • TypeScript for enhanced type safety and developer experience
  • Express.js backend serving static React files and handling API requests
  • Docker containerization for consistent development and deployment environments
  • Calendar functionality with upcoming events display
  • About Us section with board member information
  • Bylaws and Minutes sections for organizational transparency
  • Sponsor showcase
  • Contact form in the footer

Key Components

Client-side

  • App.tsx: Main application component with routing setup
  • Header.tsx: Navigation component
  • Home.tsx: Landing page with featured content
  • Calendar.tsx: Interactive calendar with event display
  • Meet-Board.tsx: Board member profiles
  • Bylaws.tsx: Organization bylaws display
  • Minutes.tsx: Meeting minutes display
  • Sponsors.tsx: Sponsor information and logos
  • Footer.tsx: Footer component with contact form

Server-side

  • index.ts: Express.js server setup
  • sendEmail.ts: Email sending functionality for contact form

Getting Started

To run this project locally:

  1. Clone the repository
  2. Install Docker and Docker Compose
  3. Create a .env file in the root directory with necessary environment variables
  4. Run docker-compose up --build in the project root directory
  5. Access the website at http://localhost:5000

Development

  • Client-side development: cd client && npm start
  • Server-side development: cd server && npm run dev
  • Build client: cd client && npm run build
  • Build server: cd server && npm run build

Deployment

The project is set up for easy deployment using Docker. The Dockerfile includes a multi-stage build process for both client and server, optimizing the final image size.

Deployment with Docker Compose

This project is containerized using Docker for easy deployment. Follow these steps to deploy the MCDi website:

  1. Ensure Docker and Docker Compose are installed on your system.

  2. Navigate to the project root directory containing the docker-compose.yml file.

  3. Create a .env file in the root directory with the necessary environment variables: NODE_ENV=production GOOGLE_EMAIL=your-email@gmail.com GOOGLE_APP_PASSWORD=your-app-password

  4. Build and start the containers: docker-compose up --build

  5. Access the application at http://localhost:4000

  6. To stop the containers: docker-compose down

  7. Use Docker Compose in detached mode: docker-compose up -d

This setup allows for easy deployment and management of the MCDi website container, with the ability to scale and update as needed using Docker Compose.