Hyelin will hold a fan event on September 14, 2025 at 15:00 KST.
This website allows attendees to select their seat from a map of avialable seats. After selecting their seat, the attendee will be redirected to the payment form.
Payments will be handled externally. The payment statuses will be relayed back to the website manually via the CMS by staff, and the attendees will pick up their tickets at the event.
For simply running the websites, follow these steps:
- Clone the repository.
- Set up a local SQL Express database.
- The default connection string is
Server=localhost;Database=Hyelin2025;User Id=sa;Password=Passw0rd;Trust Server Certificate=True. - The default can be overridden by an environment variable if needed.
- The default connection string is
- Run the "DatabaseMigrator" project in "database/".
- Run one or both of the website projects--"CMS" and "Public" in "src/".
To also run the email service, follow these steps:
- Set up a local SMTP server. If needed, override the default email settings.
- Papercut SMTP is the easiest to set up and works out of the box.
- Custom configurations, if needed, can be set by environment variables.
- Run the console app
EmailSender.
Default settings are in the "appsettings.json" files. Custom settings should be set by environment variables. Please do not commit per-user configs or actual secrets into source control.
The solution contains several types of tests. Not all of them are useful all of the time.
When making a pull request, run the unit tests as a quick check. Running the integration tests is optional for this scenario.
When deploying a website, run all of the automated tests and perform the manual tests. Do this before deployment. After deployment, configure integration tests for production and run them again, because they include some production smoke tests.
Nathan will do these steps. He's the only one with the server password.
If multiple projects will be deployed, it is advised to deploy in this order:
- Staging database
- Staging Public website
- Staging CMS website
- Staging EmailSender service
- Production database
- Production Public website (green or blue)
- Production CMS website
- Production EmailSender service
First, publish the migrator to the server.
- Run all of the automated tests, then do the manual tests locally.
- Publish the migrator to a local folder.
- Copy the files to the staging location.
- Server path: ~/tools/migrate/
Next, migrate the staging database.
- Run the migrator for the staging database.
- Command:
~/tools/staging-migrate.sh
- Command:
- Run the smoke tests while targetting the staging websites.
After receiving a green light to finish publishing, continue to migrate the production database.
- Run the migrator for the production database.
- Command:
~/tools/migrate.sh
- Command:
- Run the smoke tests while targetting the production websites.
First, publish to the staging website for the changes to be previewed.
- Run all of the automated tests, then do the manual tests locally.
- Publish the website to a local folder.
- Copy the files to the staging wbsite.
- Server path: ~/www/staging.hyelinfanmeeting2025.com/
- Restart the website service.
- Command:
systemctl restart staging.hyelinfanmeeting2025.com
- Command:
- Do the smoke tests while targetting the staging website.
After receiving a green light to finish publishing, continue to publish to the production website.
- Run the deployment tool to discover whether to deploy to green or to blue.
- Command:
~/tools/deploy-website.sh - The "Next target" line will provide the next target (green or blue).
- Command:
- Copy the files from the staging website to the next target.
- Source server path: ~/www/staging.hyelinfanmeeting2025.com/
- Destination server path: ~/www/[next target].hyelinfanmeeting2025.com/
- Do the smoke tests while targetting the new deployment.
- URL: https://[next_target].hyelinfanmeeting2025.com
- Run the deployment tool again to switch to the new deployment.
- Command:
~/tools/deploy-website --deploy
- Command:
- Run the smoke tests while targetting the live website.
First, publish to the staging website for the changes to be previewed.
- Run all of the automated tests, then do the manual tests locally.
- Publish the website to a local folder.
- Copy the files to the staging website.
- Server path: ~/www/staging-cms.hyelinfanmeeting2025.com/
- Restart the website service.
- Command:
systemctl restart staging-cms.hyelinfanmeeting2025.com
- Command:
- Do the smoke tests while targetting the staging website.
After receiving a green light to finish publishing, continue to publish to the production website.
- Copy the staging files to the production website.
- Source server path: ~/www/staging-cms.hyelinfanmeeting2025.com/
- Destination server path: ~/www/cms.hyelinfanmeeting2025.com/
- Restart the website service.
- Command:
systemctl restart cms.hyelinfanmeeting2025.com
- Command:
- Do the smoke smoke tests while targetting the production website.
First, publish to the staging location for the changes to be previewed.
- Run all of the automated tests, then do the manual tests locally.
- Publish the service to a local folder.
- Copy the files to the staging location.
- Server path: ~/services/staging-email-sender
- Restart the service.
- Command:
systemctl restart staging.hyelinfanmeeting2025.com-emailsender
- Command:
- Test the service by doing something that generates an email.
After receiving a green light to finish publishing, continue to publish to the production location.
- Copy the staging files to the production location.
- Source server path: ~/services/staging-email-sender
- Destination server path: ~/services/email-sender
- Restart the service.
- Command:
systemctl restart hyelinfanmeeting2025.com-emailsender
- Command:
- Cross fingers and hope it continues to work... there is no smoke test for this one.
- Make your changes in a new branch.
- Run the unit tests. (Ignore the manual tests and integration tests.)
- Make a PR, and link the issue.
- Nathan will merge it in.