This project is a showcase of profiles for political figures.
The project has the following structure:
├── README.md
├── apps # Directory for applications
│ └── web # Web application built using Next.js
| └── web-e2e # E2E tests for the web application
├── cfgs # tsconfig, jest, eslint, tailwind, ... etc.
├── libs # logger, ui, vendor, ... etc.
├── tools # Node.js scripts, infrastructure tools & utilities
│ └── infra # Utility scripts and tools
To use this mono-repo project, please follow these steps:
First, prepare your development environment. You need to install Node version 18.0.0 or higher. Additionally, install pnpm
globally by running the following commands:
npm install -g pnpm
Next, clone the mono-repo:
# Clone the repository (using HTTPS)
git clone https://github.com/neekware/showcase.git
# Change directory into the cloned repository
cd showcase
# Install dependencies
pnpm install
You can format all files of a specific type:
# Example: Format all .ts, .tsx, .json, .html, .css, .scss files
pnpm format
To run lint, build and test.
# lint all apps/packages
pnpm lint
# build all apps/packages
pnpm build
# test all apps/packages
pnpm test
To run code coverage, coveralls (note: ci/cd).
# run test with coverage for all apps/packages
pnpm coverage
# combine test coverage for all apps/packages
pnpm coveralls
To clean build,test,lint cache artifact.
# clean all lint, build, test, ...
pnpm clean
pnpm clean:arts # clean all artifacts e2e, coverage, ...
pnpm clean:mod # clean all node_modules
pnpm reset:all # clean all node_modules, artifacts, and reinstall packages
To execute long-running processes.
# run the apps in development (watch mode)
pnpm dev
# run the apps from the `build` artifacts (prod mode)
pnpm start
To install new packages, you can use the following commands:
# Install an external dependency at the root/top-level in the main package.json
pnpm -w add <package-name>
# Install a external development dependency at the root/top-level in the main package.json
pnpm -w add -D <package-name>
# Install a dependency in a sub-package (lib/app) ONLY
# Example: pnpm workspace web add uuid
# (where "web" is the workspace and "uuid" is the external dependency)
pnpm add <package-name> --filter <workspace-name>
To execute end-to-end tests.
# run the e2e test (headless mode)
# Development server will be started automatically (pnpm run dev)
pnpm e2e
# run the e2e test (ui mode)
# Development server will be started automatically (pnpm run dev)
pnpm e2e -- --ui
# run the e2e test (headless mode) against the custom target URL
TARGET_URL=https://exmple.com; pnpm e2e
# run the e2e test (ui mode) against the custom target URL
TARGET_URL=https://exmple.com; pnpm e2e -- --ui
- Fork the repository on GitHub.
- Clone the repository locally.
- Set up your environment and install global dependencies.
- Install the recommended plugins (e.g., VSCode).
- Create a branch off of the
main
branch and call itfeature/<name>
orbug/<name>
. - Make modifications, fix bugs, and add new features.
- Write unit tests for your new logic.
- Format, lint, test, and build.
- Commit your changes to your own repository.
Issue your PR
(pull request) from your branch against thedev
branch.- Monitor your PR for further instructions and recommended fixes, if required.
- Sync your forked repository with the upstream showcase repository.
- Rinse and repeat.
Note:
Don't recycle bug/feature branches, just create new ones.
bug/<name> ---+
feat/<name> --|--> (dev) --> (ci) --> (main) --> (deploy)
^ ^ ^ ^
| | | |
| | | |
Local Development | | |
& Experimentation | | |
| | |
Pull Requests | |
from forks | |
| |
Comprehensive |
Testing and |
Integration |
|
Production
- There are no guarantees that all PRs will be accepted.
- Respect each other and be objective when raising PRs, making comments, etc.
- Enjoy contributing to the mono-repo.
- Released under a (MIT) license.
X.Y.Z Semantic Versioning
`MAJOR` version -- making incompatible API changes
`MINOR` version -- adding functionality in a backwards-compatible manner
`PATCH` version -- making backwards-compatible bug fixes
Language Files Lines Blank Comment Code
--------------------------------------------------------------------------------
Typescript JSX 81 5501 581 19 4901
TypeScript 94 3306 380 288 2638
JSON 89 1626 0 0 1626
CSS 6 1509 409 19 1081
JavaScript 39 520 14 80 426
Markdown 4 341 99 0 242
YAML 3 226 26 19 181
Plain Text 1 202 33 0 169
HTML 1 86 29 3 54
SQL 3 26 0 1 25
--------------------------------------------------------------------------------
Total 321 13343 1571 429 11343
--------------------------------------------------------------------------------
[ Neekware Inc. ]