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

81 lines
3 KiB
Markdown

# 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.