- 
                Notifications
    
You must be signed in to change notification settings  - Fork 3
 
Notable features
- Run in UI mode and uncollapse individual tests to understand primary app use-cases
 - Test signed-in and signed-out states
 - With data seeding
 - With page objects
 - Scripts for running in different modes (headless and UI modes being the most useful)
 - Generates reports, useful for troubleshooting error in CI
 
See ./scripts/local/*/playwright/e2e/*.js scripts. Do npm ci (also make sure Docker Compose is installed) and run ./scripts/local/infra-app/playwright/e2e/ui.js to see awesome Playwright UI mode screen!
TODOs
- Use GitHub Markdown collapsibles: How to add a collapsible section in markdown.
 - Add a screenshot of UI mode with states highlighted to the right
 - Add a screenshot of a home page with seeded data
 - Add a screenshot of generate report files in GitHub Actions
 
Done primarily for learning, not really needed for this project.
See ./scripts/local/*/playwright/api/*.js scripts.
- Inspect 
*.node-test.tsand*.dom-test.tsfiles to understand use-cases of each code part - Useful as a reference of how to unit test specific parts of a SvelteKit app
 - Ability to generate test coverage reports for client and server code
- Used extensively by the author to ensure good coverage of client and server code using Vitest
 
 - Contains reusable utilities useful for testing parts of a SvelteKit app
 - Includes configs for Wallaby.js, which substuntially increases the speed of writing client and server unit tests
 
See test:unit:* commands in package.json.
TODOs
- Include a screenshot with of a unit test with enabled Wallaby.js
 
GitHub Actions CI tasks required for merging PRs
- Run all linting tasks
 - Run FE unit tests
 - Run BE unit tests
 - Run API tests
 - Run E2E tests
 - Lint unwanted commit message patterns
 - Lint unwanted TODO-style comments
 
See ./.github/workflows/ci.yml file.
Northflank Pipelines CI/CD tasks
See Set up a pipeline | Getting Started | Northflank Application docs.
- Docker image building
 - Enable Maintenance mode
 - Database backup
 - Database migration
 - Docker image deployment
 
TODOs
- Include a screenshot of all GitHub CI tasks
 - Include a screenshot of Northflank Pipeline
 
- TypeScript type checking
 - Svelte Code Checker linting
 - Prettier opinionated formatting
 - ESLint TS/JS linting
 - Stylelint style linting
 
See lint* commands in package.json.
Powerful option for hosting Dockerized apps. Pipelines (CI/CD) and Templates (quick infrastructure stack replication via IaC) are their killer features. See Features β Northflank for more details (not sponsored, author is just a big fan of their platform π).
Visit https://code-snippet-sharing.nodeexx.com to access the deployed version.
TODOs
- Include a screenshot of Northflank dashboard
 
- Dockerization levels ranging from everything running outside of Docker Compose to everything running inside of it
 - Production-ready SvelteKit app 
Dockerfilewith security in mind 
Its possible to run the whole local stack with only Node.js, Docker and Docker Compose installed. For example, just run ./scripts/stack/local/all/infra-app/infra-app-seed.js to start the whole stack and seed the database with some data. Then visit localhost:3000 π. No need for npm ci or other setup to try out the app locally!
- Central location for storing app-wide configuration values
 - The only location for accessing values of environment variables
 
See ./src/lib/server/core/config/index.ts file.
- Using Tailwind CSS config as a source of truth regarding allowed design token values
 - Added comments regarding design tokens provided by Skeleton
 
See tailwind.config.ts file.
The only exceptions that require enabled JavaScript to work:
- Google Auth page itself
 - Copy button on the View code snippet details page
 
Enabled JavaScript improves the UX though π
Displays user-friendly message to the user during deployment while user is unable to interact with the app. Useful during automated database backup and migration procedures.
TODOs
- Include a screenshot of maintenance mode
 
For example, when signed-out user requests page that requires authentication, app first redirects user to sign-in page. After user successfully signs-in, app redirects them back to the originally requested page.
- Toasts when JavaScript is enabled
 - When JavaScript is disabled
- Alerts for notifications on the same page
 - Page message at the top of the page for notifications that happened after page redirection
 
 
- 404 and 500 HTTP status error pages
 - Toast notification on no Internet connection when requesting data from server with JS
 
Server part reacts to SIGINT and SIGTERM signals.
See ./src/hooks.server.ts file.
GET /api/healthcheck
See ./src/routes/api/healthcheck/+server.ts file.
Take them as subjective opinions and observations though, not universal truths π