deafmissoula-website/README.md
2024-10-14 14:15:30 -05:00

3 KiB

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.