No description
Find a file
2026-05-27 17:06:45 -06:00
client Auth, drag-and-drop, image previews, rate limiting 2026-05-27 16:49:10 -06:00
cline_docs Update memory bank: document Resources page and mobile menu fix 2026-03-11 15:37:01 -06:00
server fix: seed all gallery photos that exist on disk 2026-05-27 16:57:03 -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 Auth, drag-and-drop, image previews, rate limiting 2026-05-27 16:49:10 -06:00
docker-compose.dev.yml Auth, drag-and-drop, image previews, rate limiting 2026-05-27 16:49:10 -06:00
docker-compose.yml fix: use 'mongo' shell for healthcheck (mongosh not in mongo:4.4) 2026-05-27 17:06:45 -06:00
Dockerfile fix: use --legacy-peer-deps for client npm install in Dockerfile 2026-05-27 16:59:49 -06:00
README.md Fresh update 2024-10-14 14:15:30 -05:00
stack.env fix: pass MongoDB init credentials via env_file, not shell interpolation 2026-05-27 17:02:53 -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.