Welcome to the Christmas Invitation Management Tool! This web application is designed to help manage the guest list for our upcoming holiday celebration. It provides an intuitive interface to add, edit, and organize guest information efficiently.
- Features
- Getting Started
- Usage
- Web Server Configuration
- Security
- Contributing
- License
- Acknowledgments
- Guest Management: Add, edit, and remove guests from the attending or not attending lists.
- Sorting: Sort guests by name or company.
- Data Persistence: Guest data is securely saved and loaded from the server.
- Export Options: Export the guest list as a PDF or Excel spreadsheet.
- Undo Functionality: Undo the most recent action.
- Responsive Design: Optimized for both desktop and mobile devices.
These instructions will help you set up and run the project on your local machine for development and testing purposes.
- Web Server: Apache, Nginx, or any web server capable of running PHP scripts.
- PHP: Version 7.0 or higher with OpenSSL extension enabled.
- Browser: A modern web browser (Google Chrome, Mozilla Firefox, Microsoft Edge).
-
Clone the repository:
git clone https://github.com/grahfmusic/online-christmas-list.git
-
Navigate to the project directory:
cd christmas-invitation-tool
-
Set up the web server:
- Place the project files (
index.html
,save_guest_list.php
,load_guest_list.php
) in the web server's root directory or a virtual host directory.
- Place the project files (
-
Set file permissions:
- Ensure the server has write permissions to create and modify the
guest_list.dat
file.
chmod 660 guest_list.dat
- Ensure the server has write permissions to create and modify the
-
Configure the encryption key:
- Open
save_guest_list.php
andload_guest_list.php
. - Replace
'your-secret-key'
with a strong, secure key. - Important: Keep this key confidential and do not expose it publicly.
- Open
- The main interface displays two lists:
- Attending: Guests who have confirmed their attendance.
- Not Attending: Guests who are not attending.
-
To the Attending List:
- Click "Add Attendee".
- Enter the guest's name.
- The guest will appear in the Attending list.
-
To the Not Attending List:
- Click "Add Not Attending".
- Enter the guest's name.
- The guest will appear in the Not Attending list.
- Click the checkbox next to the guest's name to enter edit mode.
- Edit the Name, Company, and Comments fields.
- Uncheck the checkbox to save changes.
- Click "Sort by Name" or "Sort by Company" to sort the list accordingly.
- Click the "Delete" button next to the guest's entry.
- Click "Save List" to save all changes to the server.
- Click "Undo" to reverse the most recent action.
- As PDF: Click "Save as PDF" to download a PDF version.
- As Spreadsheet: Click "Save as Spreadsheet" to download an Excel file.
To set up Nginx to properly handle PHP requests and serve this tool, add the following configuration block to your Nginx server block:
server {
listen 80;
server_name yourdomain.com;
root /path/to/christmas-invitation-tool;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /guest_list\\.dat$ {
deny all;
}
}
To set up Apache to properly handle PHP requests and serve this tool, add the following configuration to your virtual host:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /path/to/christmas-invitation-tool
<Directory /path/to/christmas-invitation-tool>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Files "guest_list.dat">
Require all denied
</Files>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- Data Encryption: Guest data is encrypted on the server using AES-256-CBC encryption.
- Secure Key Management: The encryption key should be stored securely and not exposed publicly.
- HTTPS Recommended: Use HTTPS to encrypt data transmission between the client and server.
We welcome contributions! Please follow these steps:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Commit your changes:
git commit -m "Add your message"
-
Push to the branch:
git push origin feature/your-feature-name
-
Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Front-End Libraries:
- Fonts: