No description
Find a file
2025-10-14 09:46:54 -06:00
client Add gallery system to the website 2025-10-14 09:46:54 -06:00
cline_docs Add gallery system to the website 2025-10-14 09:46:54 -06:00
server Update email configuration to use port 2525 for production server compatibility 2025-09-11 15:48:07 -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 Add important files 2024-12-01 22:02:38 -06:00
docker-compose.yml Add stack.env 2025-07-03 09:29:44 -05:00
Dockerfile Fix update bug 2025-03-25 18:07:55 -05:00
README.md Fresh update 2024-10-14 14:15:30 -05:00
stack.env Add stack.env 2025-07-03 09:29:44 -05: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.