Compare commits

...

1840 Commits

Author SHA1 Message Date
6fcb7a4845 Merge pull request #2419 from AmruthPillai/l10n
New Translations from Crowdin
2025-10-18 22:32:56 +02:00
213f96b189 Merge pull request #2415 from GouravNG/feat/rich-input-highlight
[Feature] Highlight the selected options under Rich inputs.
2025-10-18 22:32:23 +02:00
e8d6d4ad3a Merge pull request #2412 from alay-dev/main
fix(template): fix gengar template summary section not rendering in sidebar
2025-10-18 22:31:10 +02:00
87370cfdf0 Apply suggestion from @AmruthPillai 2025-10-18 22:30:51 +02:00
112a644927 Merge pull request #2410 from JuanJesusAlejoSillero/main
docs: add Gengar, Glalie, and Leafish templates while also updating image paths to relative in-repo URLs in README.md
2025-10-18 22:29:49 +02:00
2977e3528a New Crowdin translations by GitHub Action 2025-10-18 00:10:39 +00:00
21fd079f94 feat(rich-input): updating datastate on pressing rich input options
- when selecting the rich input option earlier only aria-pressed="true" was changing and not datastate now updated the code to manually update the data-state
2025-10-13 22:52:25 +05:30
9bdc61b50d feat(rich-input): Highlight the selected options of rich inputs 2025-10-13 22:07:01 +05:30
2de24d5b55 fix(template): fix gengar template summary section not rendering in sidebar 2025-10-12 18:49:44 +05:30
1cba9d0fb9 Merge branch 'AmruthPillai:main' into main 2025-10-11 11:02:20 +05:30
8f532bf4a6 docs: add Gengar, Glalie, and Leafish templates while also updating image paths to relative in-repo URLs in README.md 2025-10-11 01:24:51 +02:00
4efdabd475 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2025-10-09 00:10:28 +02:00
8803101dcd fix for long waiting times 2025-10-09 00:10:25 +02:00
a4a9381b65 Merge pull request #2408 from AmruthPillai/dependabot/npm_and_yarn/npm_and_yarn-2752d6d8c0
Bump nodemailer from 6.10.1 to 7.0.7 in the npm_and_yarn group across 1 directory
2025-10-08 21:55:09 +02:00
618d42019e Bump nodemailer in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [nodemailer](https://github.com/nodemailer/nodemailer).


Updates `nodemailer` from 6.10.1 to 7.0.7
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.10.1...v7.0.7)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 7.0.7
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 19:51:38 +00:00
d9b56cfb5b - fixes #2401 2025-10-08 21:49:07 +02:00
5624dc4f83 Merge pull request #2402 from GouravNG/revert/EnvExampleFile
revert: readded the .env.example file
2025-10-07 21:25:48 +02:00
313fe47050 Merge pull request #1 from GouravNG/revert/EnvExampleFile
revert: readded the .env.example file
2025-10-07 21:56:25 +05:30
772332661f revert: readded the .env.example file 2025-10-07 21:54:59 +05:30
4c6b512455 Update version to 4.5.0 in package.json and adjust PO revision dates across multiple language files to reflect recent changes. 2025-10-01 09:46:55 +00:00
cc576f5220 Merge pull request #2219 from mtdvlpr/main
fix(templates): don't show section when all items are hidden
2025-10-01 11:30:33 +02:00
b193329c23 Merge pull request #2205 from ImDarkShadow/main
fix(linkedin): use case-insensitive slug check to prevent missing image
2025-10-01 11:29:55 +02:00
8e1459f092 Merge pull request #2244 from m4dd0c/draggable-tags
feat(dialogs): skills, custom-section, and interests dialogs support draggable tags.
2025-10-01 11:27:55 +02:00
e19b55ff65 refactor(auth): streamline logout process by clearing query data 2025-10-01 11:25:04 +02:00
687161df98 Merge pull request #2249 from MagicalGlove/main
fix(bug): clear resumes on logout to prevent seeing resumes from previously logged in accounts
2025-10-01 11:24:30 +02:00
c54cfebf5f Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2025-10-01 11:21:09 +02:00
e8d0ed1370 refactor(dashboard): replace useState with useLocalStorage for layout persistence 2025-10-01 11:21:06 +02:00
87a17a5196 Merge pull request #2274 from th3fallen/patch-1
Fix regex for parsing linkedin array links
2025-10-01 11:19:35 +02:00
d19df3389c fix translation for zh-CN 2025-10-01 11:18:00 +02:00
faa4c606e5 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2025-10-01 11:17:03 +02:00
210fbd18ac update translations 2025-10-01 11:16:59 +02:00
3ba0141ab8 Merge pull request #2296 from cleves0315/main
fix(builder): update "Separate Links" translation
2025-10-01 11:16:41 +02:00
279a2ddaeb Merge branch 'main' into main 2025-10-01 11:16:30 +02:00
ea7ee3dd7a Merge pull request #2299 from Moamal-2000/improve-accessibility
fix(homepage): resolve missing button labels and incorrect heading order
2025-10-01 11:14:16 +02:00
a55bea1e07 Merge branch 'main' into improve-accessibility 2025-10-01 11:13:56 +02:00
ed5cb7f17b bump version to v4.4.8 2025-10-01 11:11:59 +02:00
c7f8daaff3 Merge pull request #2375 from Avinash99b/main
fix(printer.service.ts): fix pdf rendering, issue #2374 solved
2025-10-01 11:01:31 +02:00
ac48ad78db Merge pull request #2382 from glconti/main
feat(openai): add Azure OpenAI support with configuration options
2025-10-01 10:56:07 +02:00
c18e18cce8 Merge pull request #2233 from SukkaW/jsd
replace unpkg w/ jsdelivr
2025-10-01 10:55:31 +02:00
65ba13e503 update dependencies 2025-10-01 10:46:46 +02:00
44ec9e1d43 remove version in lint-test-build.yml 2025-10-01 10:40:35 +02:00
7c53949741 fix formatting 2025-10-01 10:39:49 +02:00
6d37769e38 Update dependencies and refactor icon imports across the codebase 2025-10-01 10:38:50 +02:00
c525f8d2cc fix security issue, with notes being visible in public api response 2025-10-01 10:07:04 +02:00
04dfcae898 update links to digitalocean 2025-10-01 09:44:26 +02:00
9b5a99a8ca update hyperlinks 2025-10-01 09:39:26 +02:00
c44f1c5282 update hyperlinks 2025-10-01 09:39:00 +02:00
24dfa99034 Update README with Warp Sponsorship
Added Warp sponsorship section and re-format app description.
2025-10-01 09:38:10 +02:00
35c0177729 fix(openai): update Azure API version and improve error handling 2025-09-15 22:44:28 +02:00
098d67cd8c feat(openai): add Azure OpenAI support with configuration options 2025-09-09 10:14:34 +02:00
d8e0ced54c fix(printer-service): ensure profile image fully loads before PDF render 2025-09-02 08:25:41 +05:30
8e9b409bae fix(printer.service.ts): fix pdf rendering, issue #2374 solved 2025-09-02 07:45:20 +05:30
b995a6b6c0 Merge pull request #2346 from l0b0/main
chore: Remove executable flag from images
2025-08-08 08:58:38 +00:00
3e76a52306 Merge branch 'main' into main 2025-07-13 16:40:03 +02:00
4e91a2e2ef fix build error for ci workflow 2025-07-03 15:40:09 +02:00
4314912d5a security updates, dependencies house-keeping, add new translations etc. 2025-07-03 15:35:00 +02:00
93da5157ff chore: Remove executable flag from images 2025-06-30 14:52:56 +02:00
cc7bc4ffb8 fix(homepage): use h3 instead of h4 to maintain heading order in FeaturesSection component 2025-05-10 12:53:51 +03:00
78eefe9da1 fix(homepage): add accessible names to footer language button and theme toggle buttons 2025-05-10 12:45:13 +03:00
7f7c4acdcb fix(builder): update "Separate Links" translation 2025-05-09 18:32:23 +08:00
a23dbfa3df Fix regex for parsing linkedin array links
The second replace was incorrect, resulting in a link like `https://google.com]` which failed zod validation
2025-04-25 12:55:35 -04:00
249104e7a3 Update logout.ts 2025-03-24 11:14:28 +01:00
76bbe7de6b fix(bug): clear resumes on logout
fix(bug): When logged out, resumes aren't cleared and are therefore visible to next logged in user.
2025-03-24 10:23:14 +01:00
1994dde1f2 chore: handleDragOver moved to outer scope for better perf 2025-03-22 23:22:15 +05:30
a8626e400d feat(dialogs): skills, custom-section, and interests dialogs supports draggable tags 2025-03-20 02:17:34 +05:30
f5136da681 replace unpkg w/ jsdelivr 2025-03-15 22:44:18 +08:00
8efc243e43 fix(templates): don't show section when all items are hidden 2025-02-21 11:00:09 +01:00
cd21860535 Update typography.tsx
fixes #2061
2025-02-09 12:10:14 +01:00
7054623678 chore(dependencies): update TypeScript ESLint and Vitest to latest versions
- Bump @typescript-eslint packages to 8.23.0
- Update Vitest and related packages to 2.1.9
- Minor version upgrades for ts-api-utils and other related dependencies
2025-02-03 19:51:39 +01:00
37781d51f3 fix(linkedin): use case-insensitive slug check to prevent missing image 2025-02-04 00:02:43 +05:30
ec4e43d4fc sync translations from crowdin 2025-02-03 10:14:15 +01:00
1d4529128f fix lint issues 2025-02-03 09:41:21 +01:00
60ed3e2a8d Update lint-test-build.yml 2025-02-02 16:41:31 +01:00
5b67e7c0b4 Update package.json 2025-02-02 16:40:12 +01:00
1399d3c44b Merge pull request #2202 from Pieczasz/feat/2169-project-tags-order
feat(projects): allow reordering of project item tags
2025-02-02 16:39:47 +01:00
eb543cf32d feat(projects): allow reordering of project item tags
Related to #2169
2025-02-02 13:33:39 +01:00
9c6d9833d6 Merge pull request #2201 from AmruthPillai/l10n
New Translations from Crowdin
2025-02-01 04:16:05 +01:00
f50cbd71b7 New Crowdin translations by GitHub Action 2025-02-01 00:10:44 +00:00
3d5b3db321 Merge pull request #2198 from omimouni/main
feat(router): add global error boundary for route errors
2025-01-31 16:08:21 +01:00
e438602773 fix(errorpage): added localProvider, replaced a with Link and added custom messages
- Add LocaleProvider wrapper for i18n support
- Replace a tag with React Router Link components
- Add custom error messages for different HTTP status codes
- Implement proper translation support using Trans and t components
2025-01-31 14:38:17 +01:00
f42b29e4ac feat(router): add global error boundary for route errors
- Use React Router’s useRouteError to get error details.
- Create an ErrorPage component in pages/public/error.tsx.
- Show useful error messages based on status codes.
Add a button to help users go back or retry.
2025-01-31 14:01:18 +01:00
92995d9c2b fix formatting and lint errors 2025-01-30 17:57:14 +01:00
b21f1648c4 Merge pull request #2188 from AmruthPillai/l10n
New Translations from Crowdin
2025-01-30 17:46:57 +01:00
94c04b44df Merge pull request #2194 from Creative-Geek/patch-1
Allow Usage of OpenAI Compatible APIs
2025-01-30 17:46:31 +01:00
54ed0678bf Merge pull request #2195 from ADecametre/main
Fix broken images
2025-01-30 17:45:17 +01:00
817ec96963 Fix TypeError 2025-01-30 09:14:44 -05:00
8ad5458e2a Fix broken images
- Allowed img tags to be used in summaries
2025-01-30 08:56:43 -05:00
a87c5edd60 attempt to fix ci errors 2025-01-30 10:41:38 +01:00
e4327736bd fix formatting issues 2025-01-30 09:35:10 +01:00
1fddbe5f92 Update package.json 2025-01-30 08:19:25 +01:00
2c482e7df8 Merge pull request #2186 from ADecametre/main
Fix broken hyperlinks, images and custom CSS (#2182)
2025-01-30 08:18:47 +01:00
c8edcd3dad Allow usage of openai compatible apis
Changed front-end fields verification to allow the user to enter any openai compatible endpoint and api key.
to do: make a verify connection button and edit paragraphs to reflect the change
2025-01-30 08:49:22 +02:00
a82c25c7cb New Crowdin translations by GitHub Action 2025-01-30 00:09:54 +00:00
73b423030f Removed unused import 2025-01-27 23:10:29 -05:00
809551d0f8 Fix #2182 2025-01-27 19:23:28 -05:00
e795ec64d6 update translations 2025-01-27 09:59:37 +01:00
f8373e4798 Merge pull request #2179 from AmruthPillai/l10n
New Translations from Crowdin
2025-01-26 21:25:38 +01:00
a31c434fbc New Crowdin translations by GitHub Action 2025-01-26 00:10:57 +00:00
1fa8aae80a bump version to v4.4.2 2025-01-26 01:00:49 +01:00
27b60a4df9 fixes #2176, text align was not being reflected in summary sections 2025-01-26 01:00:38 +01:00
d21983aab4 update translations 2025-01-25 00:49:33 +01:00
9406d78653 - include more local fonts, such as Times New Roman and Arial (fixes #2170)
- remove embedding fonts to PDF as it wasn't doing anything
2025-01-25 00:47:39 +01:00
c7ae0e94d7 sanitize all user inputs, fix #2172 2025-01-24 23:53:45 +01:00
308a8e3ae3 update translations 2025-01-24 21:20:12 +01:00
4c90cc1838 fix security vulnerability with update password API route 2025-01-24 21:13:24 +01:00
460a40711e fix issue with missing DialogTitle/DialogDescription, fix issue with hot reloads 2025-01-19 22:01:37 +01:00
18cf814779 fixes #2161, remove v1 validation requirement for openai api url 2025-01-17 22:38:45 +01:00
a9656afbbf sync translations from crowdin 2025-01-17 22:33:13 +01:00
385fe008ce Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2025-01-17 22:32:06 +01:00
7e25e853d7 update dependencies 2025-01-17 22:31:57 +01:00
de5adbe3d2 Merge pull request #2160 from AmruthPillai/l10n
New Translations from Crowdin
2025-01-16 22:36:05 +01:00
c239ae3f49 update dependencies 2025-01-16 12:09:14 +01:00
1bfdff5b30 New Crowdin translations by GitHub Action 2025-01-16 00:10:16 +00:00
63db927924 - fixes #2153, attempt to fix 401 unauthorized error when implementing OIDC 2025-01-15 16:32:43 +01:00
9a34e4af27 Merge pull request #2155 from AmruthPillai/l10n
New Translations from Crowdin
2025-01-15 15:59:02 +01:00
b5589338ec New Crowdin translations by GitHub Action 2025-01-15 00:10:04 +00:00
a19059aa76 Merge pull request #2152 from AmruthPillai/2151-bug-openid-authentication-only-works-when-node_env-is-development
fixes #2151: apply secure cookie session only if using SSL (https)
2025-01-14 10:24:11 +01:00
15f962310b fix lint issue 2025-01-14 09:52:26 +01:00
a32def2086 fixes #2151, apply secure cookie session only if using SSL (https) 2025-01-14 09:45:57 +01:00
21af624096 Merge pull request #2149 from AmruthPillai/feat/implement-openid-connect-strategy
Implement OpenID Connect Authentication Strategy
2025-01-13 16:22:43 +01:00
227870ac78 fix issues suggested by coderabbit 2025-01-13 16:22:29 +01:00
33cb3dbd6a ensure secure cookies are used in express-session 2025-01-13 16:04:27 +01:00
eb7813ac6f Implement OpenID Connect Authentication Strategy (works with Keycloak, Authentik etc.) 2025-01-13 15:56:29 +01:00
0f8f2fe560 cleanup internal package resolution 2025-01-13 11:53:42 +01:00
51f38f0884 update translations 2025-01-13 01:50:39 +01:00
6b93fd179d Merge pull request #2147 from AmruthPillai/l10n
New Translations from Crowdin
2025-01-13 01:15:29 +01:00
9385f36832 New Crowdin translations by GitHub Action 2025-01-13 00:10:39 +00:00
a5dc15dc08 Merge pull request #2146 from AmruthPillai/feat/custom-css
Implement Custom CSS Feature
2025-01-13 01:07:16 +01:00
eab996f7e7 some more updates 2025-01-13 01:07:01 +01:00
43c5a33773 Implement Custom CSS Feature 2025-01-13 00:31:49 +01:00
7fb0226ddc update to react-router v7 2025-01-12 19:41:18 +01:00
db6e7a7480 fix deploy step 2025-01-12 18:10:58 +01:00
6335ad1571 fixes #2082, fixes #2066 - fallback to cuid2 if filename contains non-latin characters 2025-01-12 18:06:44 +01:00
2d62504895 Merge pull request #2144 from AmruthPillai/chore/update-dependencies
Update dependencies, bump release version and a lot more
2025-01-12 17:43:07 +01:00
e34d0cebe5 fix deploy step in publish-docker-image 2025-01-12 17:42:51 +01:00
0053d696ff Update ESLint configuration and schemas to use Zod library
- Changed ESLint configuration to target TypeScript files and added parser options for better integration.
- Updated various schemas across the application to replace `nestjs-zod/z` imports with `zod` for consistency.
- Refactored password validation in authentication schemas to use `z.string()` instead of `z.password()`.
- Enhanced date handling in user and resume schemas by introducing a new `dateSchema` utility.
- Updated `.ncurc.json` to target minor upgrades for dependencies.
2025-01-12 17:34:45 +01:00
6fb0a72a56 fix dependencies to latest minor, add swc to no-update list 2025-01-12 17:01:20 +01:00
5b3e91e34d update release version 2025-01-12 16:55:59 +01:00
d1a5a41e4d Enhance UI and Configuration:
- Added missing `type="button"` attributes to various toolbar buttons in the rich-input component for better accessibility.
- Updated Gengar template to ensure the summary section is only displayed when populated.
- Changed boolean values in Docker Compose files from unquoted to quoted strings for consistency and to prevent potential parsing issues.
2025-01-12 16:50:07 +01:00
d0a07686a5 Merge pull request #1997 from 2368883029/main
Fix(client): Fix Unintentional Form Submission on Rich-input Toolbar Actions
2025-01-12 16:41:35 +01:00
ffa4747ed6 Merge pull request #2002 from ilatypov/main
Allow the headless browser connect to the app.
2025-01-12 16:40:44 +01:00
b963813910 Merge branch 'main' into main 2025-01-12 16:40:36 +01:00
58950ed0ef Merge pull request #2008 from busches/patch-1
fix(docs): Add missing themes to bug-report
2025-01-12 16:38:15 +01:00
1c7a6c952f Merge pull request #2010 from busches/fix-2007
fix(Gengar): Hide Summary section unless populated
2025-01-12 16:37:01 +01:00
3ae651fece resolve formatting and linting issues 2025-01-12 16:35:35 +01:00
bd52983780 Merge branch 'main' into fix-2007 2025-01-12 16:35:10 +01:00
39daed3502 Merge branch 'infinia-yzl-main' 2025-01-12 16:25:25 +01:00
dda47f51ec Merge branch 'main' of github.com:infinia-yzl/Reactive-Resume into infinia-yzl-main 2025-01-12 16:24:54 +01:00
374b9bcc58 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2025-01-12 16:23:48 +01:00
f0b18019d5 fix allowOverflow definition on scroll-area 2025-01-12 16:23:46 +01:00
5c10f3d866 Merge pull request #2024 from plecrx/patch-1
fix(storage-controller): rm duplicate userID & use correct filename parameter
2025-01-12 16:09:05 +01:00
5d839e5420 Merge pull request #2009 from busches/patch-2
fix(docs): Update CONTRIBUTING.md for Node 20
2025-01-12 16:07:44 +01:00
febbdefc0b Merge pull request #2035 from noreb001/bugfix/CardClippingIssue
bugfix: Fixed clipping issue with cards on dashboard page
2025-01-12 16:03:25 +01:00
6110440682 resolves #2047, fix summary text in chikorita template, when in sidebar 2025-01-12 15:58:28 +01:00
d0a174d7b7 fix localhost translation logic in printer service 2025-01-12 15:52:30 +01:00
6708570c49 Merge pull request #2091 from raymondyangdev/main
fix(templates): Add right border after website in Rhyhorn
2025-01-12 15:38:54 +01:00
bb4bbf4174 Merge pull request #2095 from jbilinski/upstream-0
fix(printer): refine "localhost" matching in printer.service.ts
2025-01-12 15:37:38 +01:00
a3ef6520e7 - refactor(templates): update sidebar display conditionals for consistency
- Modified multiple template files to change the sidebar length conditionals from `!== 0` to `> 0` for improved readability and consistency across components.

- Added Code of Conduct
2025-01-12 15:36:01 +01:00
0fec5ce86d Merge pull request #2103 from 0x346e3730/feat/full-width-main-if-no-sidebar
feat(templates): make main full-width if sidebar is empty
2025-01-12 15:31:42 +01:00
26e34b6b83 chore: update Prettier configuration and add Tailwind CSS plugin; refactor CSS classes for consistency
- Updated .prettierrc to include Tailwind CSS plugin and functions.
- Added prettier-plugin-tailwindcss to package.json and pnpm-lock.yaml.
- Refactored CSS classes in main.css and various TSX files for improved consistency and readability.
- Adjusted spacing in several components to enhance layout and maintain uniformity.
2025-01-12 15:29:23 +01:00
007243f2c3 Merge pull request #2114 from Karanrajsinh/main
Fix #1660 [Mobile Frontend Issue] :  Section-Dialog Overflow In Mobile Device Along With Some Changes In Spacing And Font Size Of Sidebar
2025-01-12 15:28:18 +01:00
9d0a0bba86 Merge branch 'main' into main 2025-01-12 15:17:55 +01:00
89a44cc33a - normalize username and email fields to lowercase, resolves #1740
- add autoComplete attributes to auth flow for easier sign in/sign up
2025-01-12 15:13:11 +01:00
92856b6f06 Merge pull request #1978 from googleknight/fix/profile-picture-adjustment-crash
fix(edit profile picture): fix the page crash happening when clicking on circular border radius
2025-01-12 13:46:26 +01:00
c968188080 Merge pull request #2133 from smuwonge/main
docs: remove period for consistency in feature list
2025-01-12 13:35:06 +01:00
db36bc9770 Merge pull request #2143 from AmruthPillai/fix/linkedin-logo-not-appearing
Release v4.3.2
2025-01-12 13:31:31 +01:00
35df043f66 fix: handle edge case to display LinkedIn logo when used in Profiles 2025-01-12 13:24:57 +01:00
3c4a26bc06 Update publish-docker-image.yml 2025-01-11 19:03:28 +01:00
62046c49b5 Merge pull request #2140 from AmruthPillai/release/v4.3.1
release: v4.3.1
2025-01-11 16:15:17 +01:00
3b73dcf29d fix issues brought up by coderabbit 2025-01-11 16:13:04 +01:00
9b20c46348 revert ci workflow to non-distributed 2025-01-11 16:09:07 +01:00
996ef650db update CI 2025-01-11 16:01:19 +01:00
1c36ac1d68 update CI workflow 2025-01-11 15:59:36 +01:00
198c269790 remove console.log statements 2025-01-11 15:55:06 +01:00
58ef309b68 release: v4.3.1 2025-01-11 15:38:26 +01:00
54bace451c Merge pull request #2138 from AmruthPillai/dependabot/npm_and_yarn/npm_and_yarn-45c02561f4
Bump the npm_and_yarn group across 1 directory with 10 updates
2025-01-11 14:03:54 +01:00
193b15edc1 Merge branch 'main' into dependabot/npm_and_yarn/npm_and_yarn-45c02561f4 2025-01-11 13:22:39 +01:00
e4ec678512 pin versions of chromium 2025-01-11 13:17:14 +01:00
29c18c1e89 Bump the npm_and_yarn group across 1 directory with 10 updates
Bumps the npm_and_yarn group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `5.4.2` | `5.4.6` |
| [braces](https://github.com/micromatch/braces) | `3.0.2` | `3.0.3` |
| [dset](https://github.com/lukeed/dset) | `3.1.3` | `3.1.4` |
| [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) | `4.3.5` | `4.5.1` |
| [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) | `2.0.6` | `2.0.7` |
| [nanoid](https://github.com/ai/nanoid) | `3.3.7` | `3.3.8` |
| [pug](https://github.com/pugjs/pug) | `3.0.2` | `3.0.3` |
| [rollup](https://github.com/rollup/rollup) | `4.21.0` | `4.30.1` |
| [webpack](https://github.com/webpack/webpack) | `5.90.3` | `5.97.1` |
| [ws](https://github.com/websockets/ws) | `7.5.9` | `7.5.10` |



Updates `vite` from 5.4.2 to 5.4.6
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite)

Updates `braces` from 3.0.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

Updates `dset` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/lukeed/dset/releases)
- [Commits](https://github.com/lukeed/dset/compare/v3.1.3...v3.1.4)

Updates `fast-xml-parser` from 4.3.5 to 4.5.1
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.3.5...v4.5.1)

Updates `http-proxy-middleware` from 2.0.6 to 2.0.7
- [Release notes](https://github.com/chimurai/http-proxy-middleware/releases)
- [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.7/CHANGELOG.md)
- [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7)

Updates `nanoid` from 3.3.7 to 3.3.8
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

Updates `pug` from 3.0.2 to 3.0.3
- [Release notes](https://github.com/pugjs/pug/releases)
- [Commits](https://github.com/pugjs/pug/compare/pug@3.0.2...pug@3.0.3)

Updates `rollup` from 4.21.0 to 4.30.1
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.0...v4.30.1)

Updates `webpack` from 5.90.3 to 5.97.1
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.90.3...v5.97.1)

Updates `ws` from 7.5.9 to 7.5.10
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.9...7.5.10)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: braces
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: dset
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: fast-xml-parser
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: http-proxy-middleware
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: nanoid
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: pug
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: rollup
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: webpack
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: ws
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-11 11:37:06 +00:00
13d90e8138 update translations 2025-01-11 12:28:16 +01:00
02ce1ad48c fix lint issues 2025-01-11 12:07:30 +01:00
8a401de5c9 fix account deletion 2025-01-09 15:46:50 +01:00
1c5c4d0117 fix: allow the headless browser connect to the app 2025-01-02 20:04:17 -05:00
d6fee1e3a6 docs: remove period for consistency in feature list 2025-01-02 14:31:52 -08:00
d84aeee968 fix(builderpage): resolve section-dialog height overflow for mobile and adjust sidebar font and spacing styles 2024-12-01 10:17:01 +05:30
c87242142d feat(templates): make main full-width if sidebar is empty 2024-11-14 09:39:57 +04:00
2c84976e28 Merge pull request #2 from jbilinski/jbilinski-patch-1
fix: refine "localhost" matching in printer.service.ts
2024-11-07 10:18:43 -08:00
31ed9f41a0 fix: refine "localhost" matching in printer.service.ts
changed localhost matching for local dev environments from a url string match to more specific regex that matches host property.
This was causing the "about:blank", no output error in (edge) case of printing a pdf from any url with string "localhost"
2024-11-07 10:16:35 -08:00
700b98fcb7 fix(templates): Add right border in header after website field with custom fields in Rhyhorn 2024-11-05 17:35:14 +13:00
e29f973889 Merge pull request #2073 from bocklucas/ft-add-ollama
Adding Ollama Support
2024-10-13 02:08:15 +02:00
6e25780b25 Adding Ollama Support 2024-10-12 18:44:23 -05:00
Ben
3f01a9e58e fixed clipping issue with cards on dashboard page 2024-09-06 12:43:27 +00:00
1bed63a4af Merge pull request #2030 from rinczefi-user/rinczefi-patch
set endOfLine to auto to support the codebase also on windows machines
2024-09-04 16:53:52 +02:00
a530fce78c set endOfLine to auto to support the codebase also on windows machines 2024-09-04 14:55:11 +03:00
87a395683d fix eslint issues 2024-09-02 12:50:57 +02:00
e3f3b8b464 bump version to 4.2.0 2024-09-02 12:31:56 +02:00
b9de35f0d9 fix(storage-controller): rm duplicate userID & use correct filename parameter 2024-08-23 16:45:50 +02:00
5827576ffb chore(package/react-zoom-pan-pinch): Bump react-zoom-pan-pinch version to 3.6.1 from 3.4.4 2024-08-14 17:01:05 +08:00
acc9becf1a feat(toggle-pan): Add toggle to switch between scroll to pan and scroll to zoom
- Modify wheel behaviour to pan by default for a more natural behaviour with trackpads (https://github.com/BetterTyped/react-zoom-pan-pinch/pull/447)
- Bump `react-zoom-pan-pinch` version to `3.6.1` from `3.4.4`
2024-08-14 16:25:10 +08:00
c2837838ee fix(Gengar): Hide Summary section unless populated 2024-08-04 14:36:58 -05:00
304fd93ece Update CONTRIBUTING.md for Node 20
package.json and GitHub Actions both run with Node 20
2024-08-04 14:20:41 -05:00
491bbcadcc Add missing themes to bug-report
A few themes were missing when I filled out a bug report.
2024-08-04 14:18:47 -05:00
df63f4b8a7 Merge pull request #1999 from StijnGroenen/feature/custom-field-url
feat(templates): added url support for custom fields
2024-07-22 12:04:36 +02:00
29fc7c419b feat(templates): added url support for custom fields 2024-07-21 21:17:18 +02:00
5bc0230a5a Fix: Can't insert image in a category other than summary 2024-07-21 00:54:00 -04:00
c9a2c27b2d fix(edit profile picture): fix the crash happening when clicking on circular border radius 2024-06-27 14:59:13 +05:30
767573ce6d disable resume previews to lower load on server, fixes #1954 2024-06-13 11:40:17 +02:00
713ce91683 bump version to 4.1.7 2024-06-10 08:04:56 +02:00
8478a42cf0 Merge pull request #1943 from AmruthPillai/1900-bug-inputting-openai-api-key-throws-weird-error
#1900 - bug inputting openai api key throws weird error
2024-06-10 08:04:01 +02:00
5e33f7e8f4 update dependencies, fix lint issues 2024-06-10 08:00:05 +02:00
2292c25158 i18n: update translations 2024-06-10 07:51:09 +02:00
13a7412498 Merge branch 'main' into 1900-bug-inputting-openai-api-key-throws-weird-error 2024-06-10 07:50:03 +02:00
a44846b632 feat: Add file validation for reactive-resume-json type in ImportDialog 2024-06-10 07:49:16 +02:00
454aa20aa9 Merge pull request #1929 from HUAHUAI23/fix/client
fix(client): Fix issue with unhandled errors during resume import
2024-06-10 07:46:47 +02:00
e3b4105424 Merge pull request #1909 from DemaPy/patch-1
fix(client): fix Type Error in Picture Configuration Options
2024-06-10 07:46:35 +02:00
f0ede57786 Merge pull request #1941 from AmruthPillai/l10n
New Translations from Crowdin
2024-06-10 07:46:24 +02:00
ab10d026d6 Refactor OpenAI API key regex to accept project API keys, fixes #1900 2024-06-10 07:46:06 +02:00
a2dbd7ce2b New Crowdin translations by GitHub Action 2024-06-10 00:09:11 +00:00
eca51decc2 Merge pull request #1939 from abizek/fix/skip-crowdin-action-on-forks
Fix(actions): skip sync crowdin action on forks
2024-06-05 18:14:32 +02:00
06455da40a fix(actions): skip sync crowdin action on forks
Signed-off-by: abizek <abishekilango@protonmail.com>
2024-06-05 13:06:05 +05:30
700b74a0b7 Merge pull request #1928 from AmruthPillai/l10n
New Translations from Crowdin
2024-06-04 09:58:42 +02:00
ae64515e93 Merge pull request #1937 from abizek/fix/double-issuer-name
fix(template): double issuer name in chikorita certificates
2024-06-04 09:57:57 +02:00
0992726d7e fix(template): chikorita certificate layout
Signed-off-by: abizek <abishekilango@protonmail.com>
2024-06-04 11:39:04 +05:30
38a442c40d fix(template): double issuer name in chikorita certificates
Signed-off-by: abizek <abishekilango@protonmail.com>
2024-06-04 10:55:41 +05:30
14bcfb219a New Crowdin translations by GitHub Action 2024-06-04 00:08:28 +00:00
d0fd1e3ff5 fix(client): Fix issue with unhandled errors during resume import 2024-05-30 12:39:25 +00:00
3f29ca3add Merge pull request #1922 from AmruthPillai/1592-feature-the-possibility-to-disable-new-sign-ups
🚀 [Feature] Disable new signups through server controlled feature flags
2024-05-29 10:42:51 +02:00
bf498b5972 chore(i18n): update translation files 2024-05-29 10:39:53 +02:00
2bc42493af chore(release): bump version to 4.1.6, update pnpm version 2024-05-29 10:31:41 +02:00
d18ef2e1a5 feat(feature-flags): fixes #1592, introduces new flags DISABLE_SIGNUPS and DISABLE_EMAIL_AUTH, renamed STORAGE_SKIP_BUCKET_CHECK 2024-05-29 10:30:38 +02:00
2409a5786a Update options.tsx
Fix for issue log:
https://github.com/AmruthPillai/Reactive-Resume/issues/1902
2024-05-22 12:58:27 +02:00
1191bbca67 Merge pull request #1906 from AmruthPillai/l10n
New Translations from Crowdin
2024-05-22 08:09:51 +02:00
f5804ab458 New Crowdin translations by GitHub Action 2024-05-22 00:08:19 +00:00
748b509b1d update dependencies, fix import sample resume issue, update pnpm version 2024-05-21 08:10:12 +02:00
696f6f71b5 bump version to 4.1.4 2024-05-20 17:13:50 +02:00
09ebcdf40f remove sentry integration, fix linting issues 2024-05-20 17:13:17 +02:00
0ee0b6b2e9 Merge pull request #1823 from jzaehrin/feat/separate-links
feat: separate links option to reduce section item height
2024-05-20 17:02:56 +02:00
fe550ccc36 update pnpm version 2024-05-20 17:02:48 +02:00
6dcbe78730 Merge branch 'main' into feat/separate-links 2024-05-20 17:01:16 +02:00
73b29f78ab Fix linting, update translations, remove vite-plugin-chunk-split 2024-05-20 16:59:38 +02:00
0124db049b Merge pull request #1780 from dhavalsavalia/custom-icons-in-header
fix(CustomField): add a way to have icon in custom fields
2024-05-20 16:44:37 +02:00
a033c3eff6 Merge branch 'main' into custom-icons-in-header 2024-05-20 16:44:11 +02:00
97286739f2 Merge pull request #1842 from abizek/fix/custom-text-and-background-color
Fix(artboard): Text and background color
2024-05-20 16:42:36 +02:00
a74a8ed044 Merge pull request #1844 from abizek/fix/right-sidebar-page-section-scroll
Fix(builder): right sidebar scroll to page section
2024-05-20 16:41:25 +02:00
376f72a22f Merge pull request #1845 from abizek/fix/nosepass-template-europass-logo
Fix(templates): serve europass logo from public assets
2024-05-20 16:40:55 +02:00
77dee57324 Merge pull request #1885 from nickconway/fix/pdf-name
Fix: generate PDF name from title instead of id
2024-05-20 16:37:43 +02:00
5d0c92e90d Merge pull request #1891 from AashishSinghal/main
Bug Fix #1847 - Fix Sidebar Height in Chikorita template
2024-05-20 16:36:57 +02:00
868e6de7d9 Merge pull request #1843 from abizek/fix/tfa-length-error-message
Fix(tfa): error message for tfa code length
2024-05-20 16:36:23 +02:00
e24f8850d2 merge branch main
Signed-off-by: abizek <abishekilango@protonmail.com>
2024-05-20 13:12:53 +05:30
f30a76229b Revert "disable crowdin sync cron"
This reverts commit b1af5d9339.
2024-05-20 13:08:50 +05:30
02c6318f60 Merge main into fix/custom-text-and-background-color 2024-05-20 13:06:02 +05:30
2f87dde48d Merge branch 'main' into fix/nosepass-template-europass-logo 2024-05-20 13:03:31 +05:30
d570b21635 Merge branch 'main' into fix/right-sidebar-page-section-scroll 2024-05-20 13:03:27 +05:30
b1af5d9339 disable crowdin sync cron 2024-05-20 12:47:21 +05:30
a598a7a7f0 Merge pull request #1899 from ToshY/issue/1897
fix(docker): add environment variable for puppeteer to launch with `ignoreHTTPSerrors` flag
2024-05-15 20:24:29 +02:00
f60fc63ee3 fix(docker): add environment variable for puppeteer to launch with ignore http errors flag 2024-05-15 19:52:22 +02:00
94eb549d25 Bug Fix #1847 - Fix Sidebar is not stretching to the full height in Chikorita template 2024-05-12 08:25:10 +05:30
7a8b5d09c6 add ReleaseBot Discord Webhook to Publish Docker Image action 2024-05-10 11:46:25 +02:00
c15d9f7645 revert structuredClone as it is not supported on proxy objects 2024-05-10 11:27:13 +02:00
a102f62e28 replace JSON.parse(JSON.stringify({})) with structuredClone({}) 2024-05-10 11:00:15 +02:00
c1a58118c2 - add AuthRefreshProvider to refresh auth tokens every 5 minutes
- pull the latest crowdin language artifacts
2024-05-10 10:52:35 +02:00
b0d26e3230 Merge pull request #1889 from AmruthPillai/l10n
New Translations from Crowdin
2024-05-09 08:06:29 +02:00
7e354b74bd New Crowdin translations by GitHub Action 2024-05-09 00:08:50 +00:00
e20bcb8c14 Merge pull request #1886 from AmruthPillai/l10n
New Translations from Crowdin
2024-05-08 09:21:26 +02:00
506058aacb New Crowdin translations by GitHub Action 2024-05-08 00:07:50 +00:00
a7a0e4e652 Fix: generate PDF name from title instead of id 2024-05-07 13:13:10 -04:00
7b394f1437 pin versions of pnpm and node 2024-05-07 12:33:16 +02:00
e2e2551db4 fix lint-test-build workflow 2024-05-07 12:31:01 +02:00
52e062c0b5 fix eslint issues 2024-05-07 12:02:39 +02:00
e3785030e1 add code chunking to vite.config.ts 2024-05-07 11:45:33 +02:00
e21430a421 Merge pull request #1883 from AmruthPillai/l10n
New Translations from Crowdin
2024-05-07 09:25:38 +02:00
f66704af88 New Crowdin translations by GitHub Action 2024-05-07 00:08:07 +00:00
7a65363296 add test to github action 2024-05-05 17:06:08 +02:00
8180e8c7b8 add SENTRY_AUTH_TOKEN 2024-05-05 16:50:01 +02:00
13b2a5be94 add max-parallel:1 to github action 2024-05-05 16:09:29 +02:00
4dd5367572 attempt to fix lint issues 2024-05-05 15:02:16 +02:00
e87b05a93a release: v4.1.0 2024-05-05 14:55:06 +02:00
68252c35fc update postgres version in templates 2024-05-03 23:03:23 +02:00
ac9b280bd5 revert runs-on 2024-05-03 21:48:28 +02:00
32b8407b1a experimenting with self-hosted action runners 2024-05-03 21:18:25 +02:00
989e8dee5b update dependencies 2024-05-03 20:55:13 +02:00
5ed561812f add privacy policy, bump up version to 4.0.13 2024-05-03 20:53:58 +02:00
cba2eda5d0 fix artifact name 2024-05-03 16:43:20 +02:00
1c7b44b604 migrate actions/upload-artifact to v4 2024-05-03 15:29:59 +02:00
5d61e865a8 changes to Dockerfile 2024-05-03 15:12:38 +02:00
f32a85cec9 add emptyOutDir: true to vite.config.ts 2024-05-03 15:07:07 +02:00
c99ce90cf8 add ARG NX_CLOUD_ACCESS_TOKEN to Dockerfile 2024-05-03 14:52:59 +02:00
6e2b960bdb fix dependencies installation location 2024-05-03 14:31:13 +02:00
862c812ee1 add files to .dockerignore 2024-05-03 14:22:28 +02:00
6424b15b76 update versions of workflows 2024-05-03 14:08:49 +02:00
5e32673358 modify action workflows 2024-05-03 14:04:20 +02:00
470f187c0b fix Dockerfile 2024-05-03 14:02:08 +02:00
8b966946ea remove unnecessary pnpm-lock.yaml files 2024-05-03 13:53:39 +02:00
8579a4c98d Merge pull request #1871 from AmruthPillai/l10n
New Translations from Crowdin
2024-05-03 13:31:56 +02:00
8deff757a9 fix tiptap issues, update dependencies, fix typescript issues with minio client 2024-05-03 12:05:54 +02:00
d227cf64aa New Crowdin translations by GitHub Action 2024-05-03 00:08:45 +00:00
458af1d840 Merge pull request #1870 from AmruthPillai/l10n
New Translations from Crowdin
2024-04-22 19:42:30 +02:00
0024aec60a New Crowdin translations by GitHub Action 2024-04-22 00:08:42 +00:00
ec86536ace Merge pull request #1864 from AmruthPillai/l10n
New Translations from Crowdin
2024-04-18 06:20:17 +02:00
f7e2bfb078 New Crowdin translations by GitHub Action 2024-04-18 00:08:40 +00:00
168be7dfb8 Merge pull request #1861 from AmruthPillai/l10n
New Translations from Crowdin
2024-04-12 09:12:00 +02:00
832d0002e9 New Crowdin translations by GitHub Action 2024-04-12 00:08:14 +00:00
1f9e3aa9d1 update dependencies, update translations 2024-04-10 15:43:56 +02:00
dd97c6d71f Merge pull request #1856 from WangZhiYao/main
feat(server): Support for SMTP-over-TLS
2024-04-09 10:30:17 +02:00
339
1f5dce2233 feat(server): Support for SMTP-over-TLS 2024-04-09 14:42:47 +08:00
fe77b14807 Merge pull request #1855 from AmruthPillai/l10n
New Translations from Crowdin
2024-04-08 11:10:22 +02:00
a36c49fa77 New Crowdin translations by GitHub Action 2024-04-08 00:08:19 +00:00
589e782d71 Merge branch 'main' into fix/tfa-length-error-message 2024-04-06 11:16:43 +05:30
31f396c01a Merge branch 'main' into fix/nosepass-template-europass-logo 2024-04-06 11:16:28 +05:30
6d20eda423 Merge branch 'main' into fix/right-sidebar-page-section-scroll 2024-04-06 11:16:15 +05:30
53b5bdc0b5 Merge branch 'main' into fix/custom-text-and-background-color 2024-04-06 11:16:02 +05:30
709bf0a526 Merge pull request #1851 from AmruthPillai/l10n
New Translations from Crowdin
2024-04-05 08:49:19 +02:00
7189c7f203 New Crowdin translations by GitHub Action 2024-04-05 00:08:37 +00:00
cdef456aac update dependencies 2024-04-03 09:58:08 +02:00
8c879841d7 fix(tfa): lazily translate error message 2024-04-02 17:05:29 +05:30
937e6b053d fix(templates): serve europass logo from public assets
fixes #1825
2024-04-02 14:05:00 +05:30
ac9109c2b6 fix(builder): right sidebar scroll to page section 2024-04-02 12:28:17 +05:30
fcc68750cf fix(tfa): error message for tfa code length 2024-04-02 12:22:30 +05:30
afe52da92d fix(artboard): apply custom text and background color 2024-04-01 19:31:28 +05:30
a578bd1054 Merge pull request #1836 from AmruthPillai/l10n
New Translations from Crowdin
2024-03-31 10:22:04 +02:00
116c038861 New Crowdin translations by GitHub Action 2024-03-31 00:09:18 +00:00
6e6914fe6b Merge pull request #1830 from AmruthPillai/l10n
New Translations from Crowdin
2024-03-27 08:15:01 +01:00
2bf04f2616 New Crowdin translations by GitHub Action 2024-03-27 00:08:21 +00:00
6f2e75f22b feat: separate links option at section level to reduce section item height 2024-03-25 17:27:33 +01:00
f6c2ae7504 remove banner on mobile/tablet devices 2024-03-25 15:08:39 +01:00
890875ad9d - upgrade to browserless v2
- add missing languages
- add donation banner
- update dependencies
- bump version to 4.0.9
2024-03-22 12:11:15 +01:00
11953af700 Merge pull request #1816 from AmruthPillai/dependabot/npm_and_yarn/follow-redirects-1.15.6
Bump follow-redirects from 1.15.5 to 1.15.6
2024-03-19 09:17:57 +01:00
3c774102cf Merge pull request #1809 from Rash-Hit/debouncing-in-profile-icon
debounce in profile icon
2024-03-19 09:17:28 +01:00
fbf92160a3 Merge pull request #1815 from AmruthPillai/l10n
New Translations from Crowdin
2024-03-19 09:16:33 +01:00
a798845865 New Crowdin translations by GitHub Action 2024-03-19 00:08:05 +00:00
7db57e04c0 Bump follow-redirects from 1.15.5 to 1.15.6
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-17 01:21:40 +00:00
b23efa773f Merge pull request #1813 from AmruthPillai/l10n
New Translations from Crowdin
2024-03-14 14:04:42 +01:00
3b41b32f09 New Crowdin translations by GitHub Action 2024-03-14 00:07:49 +00:00
5513b909e7 Merge pull request #1810 from AmruthPillai/l10n
New Translations from Crowdin
2024-03-12 06:46:38 +01:00
c1a50d4125 New Crowdin translations by GitHub Action 2024-03-12 00:07:52 +00:00
7babde2d62 Merge branch 'AmruthPillai:main' into debouncing-in-profile-icon 2024-03-11 16:58:04 +05:30
08a6415ba8 -- code refactored -- 2024-03-11 11:25:45 +00:00
1ee9478200 debounce in profile icon 2024-03-11 10:28:50 +00:00
bbe8fb6655 Merge pull request #1808 from AmruthPillai/1805-bugfont-subset-and-font-variants-not-working
Add CommandList to Combobox component
2024-03-11 09:57:07 +01:00
6405102cab add CommandList to Combobox component 2024-03-11 09:54:10 +01:00
32445a5cd7 Merge pull request #1804 from AmruthPillai/l10n
New Translations from Crowdin
2024-03-11 09:44:55 +01:00
5494d93e1d New Crowdin translations by GitHub Action 2024-03-11 00:08:17 +00:00
ad9647a3f4 revert @nestjs-modules/mailer to 1.10.3 2024-03-10 11:19:51 +01:00
9ee7e3195b bump up version to 4.0.7 2024-03-10 11:14:23 +01:00
53dfd4cb09 fix language selector 2024-03-10 11:12:15 +01:00
7ceb0f6e39 add symbolic links to prettierignore 2024-03-10 10:50:45 +01:00
7496461618 add symbolic links to compose files 2024-03-10 10:36:43 +01:00
b47b7824ff - bump up version to 4.0.6
- update dependencies
- remove test phase from CI script
- lint and format all files
2024-03-10 10:35:23 +01:00
ec77d13ebd add safety check for username in github strategy 2024-03-10 10:27:30 +01:00
c8f7989c1f refactor avoidTooShort function 2024-03-10 10:25:47 +01:00
ec612f0902 Merge pull request #1799 from mradigen/main
fix(github_auth): fix GithubStrategy not searching for user using username
2024-03-10 10:25:28 +01:00
10b2ca8bf2 Merge pull request #1790 from gzsombor/import-fixes
Better error handling and more lenient on the imported values
2024-03-10 10:23:58 +01:00
995b1e627b Merge pull request #1789 from skyworkz/bugfix/compose-setup-pdf-download
fix issue where PDF downloads fail on compose setup
2024-03-10 10:22:50 +01:00
f1d4ebb504 Merge pull request #1788 from abizek/main
Fix popover stacking in right sidebar theme section
2024-03-10 10:21:40 +01:00
6c97c880b3 Merge pull request #1785 from tsp36/feat/chinese_name
modify the name field to a minimum of 2 characters
2024-03-10 10:21:07 +01:00
8fc3c25714 Update libs/dto/src/user/user.ts 2024-03-10 10:21:01 +01:00
19c4d31710 Merge pull request #1771 from iammursal/main
fix(import): Changing 'Filetype' clears the 'File' upload field properly
2024-03-10 10:15:52 +01:00
b17919e909 Merge pull request #1768 from bhumit070/main
fix(gengar template): link of personal project was overflowing outside.
2024-03-10 10:14:51 +01:00
4c1c17c693 Merge pull request #1751 from Samrat-Saha-Sammy/main
fix(#1750): fixed downloaded PDF have issue(s) with Typography options
2024-03-10 10:13:09 +01:00
df99470df8 modifications to rich-input link component 2024-03-10 10:12:09 +01:00
a92528cdb7 Merge pull request #1729 from CorreyL/feature/ctrl-k-for-hyperlink
[Feature] Keyboard Shortcut for Hyperlink
2024-03-10 10:07:33 +01:00
219e6999df Merge branch 'main' into feature/ctrl-k-for-hyperlink 2024-03-10 10:07:26 +01:00
95ee77f65c Merge pull request #1727 from CorreyL/main
[Bugfix] Instantiate Link with inclusive set to false
2024-03-10 10:04:27 +01:00
eac26215a3 update messages.po translations from lingui 2024-03-10 10:01:09 +01:00
783af5070d remove caching from resumes 2024-03-10 10:00:51 +01:00
359c7f1c80 update dependencies 2024-03-10 10:00:33 +01:00
71d3cea100 Fix build 2024-03-09 12:33:49 +01:00
befc5a67fc Format code, better function name 2024-03-09 11:50:56 +01:00
5a2c222d61 Better error handling and more lenient on the imported values 2024-03-09 11:50:56 +01:00
6a3c75c15c Merge branch 'main' into main 2024-03-08 18:01:28 +05:30
b6162d7bb0 fix(github_auth): fix GithubStrategy not searching for user using username 2024-03-06 15:40:37 +05:30
550e15228e Merge pull request #1795 from busches/patch-1
Update minimum node to 18.17.0
2024-03-01 10:58:37 +01:00
518f5b1fb8 Merge pull request #1796 from AmruthPillai/l10n
New Translations from Crowdin
2024-03-01 10:58:19 +01:00
1e56f940d9 New Crowdin translations by GitHub Action 2024-03-01 00:09:05 +00:00
e83e9c61b5 Update minimum node to 18.17.0
The dependency on sharp will fail with anything between 18.0-<18.17.0 per https://sharp.pixelplumbing.com/install#prerequisites
2024-02-28 20:09:29 -06:00
269f4c8b4d fix(builder): fix popover stacking in right sidebar theme section
Fixes #1642
2024-02-28 00:16:18 +05:30
24f0af890a Merge pull request #1781 from AmruthPillai/l10n
New Translations from Crowdin
2024-02-24 07:39:43 +01:00
5ccd98bd0a New Crowdin translations by GitHub Action 2024-02-24 00:07:22 +00:00
21fe2e195c fix issue where PDF downloads fail on compose setup 2024-02-23 10:54:36 +01:00
33168aa535 modify the name field to a minimum of 2 characters 2024-02-21 09:40:57 +08:00
2dce78200b feat(Profiles): hide network name when icon is present 2024-02-18 13:29:33 -05:00
b92b4c9936 fix(CustomField): add a way to have icon in custom fields 2024-02-18 12:50:33 -05:00
c806dc890a Merge pull request #1773 from AmruthPillai/l10n
New Translations from Crowdin
2024-02-18 05:24:31 +01:00
816023eea6 Merge pull request #1747 from theschles/main
fix(templates): Vertical-align-top instead of vertical-align-middle entry header data
2024-02-18 05:24:08 +01:00
129ac7da38 New Crowdin translations by GitHub Action 2024-02-18 00:08:31 +00:00
1b80f751a3 Merge branch 'main' into main 2024-02-15 15:32:20 -08:00
f30d299949 fix(import): Changing 'Filetype' clears the 'File' upload field properly 2024-02-14 21:14:02 +03:00
5de1bafdc6 Merge pull request #1762 from AmruthPillai/l10n
New Translations from Crowdin
2024-02-14 10:03:28 +01:00
2a8abd3a0b New Crowdin translations by GitHub Action 2024-02-14 00:07:50 +00:00
fdfcd37061 fix(gengar template): link of personal project was overflowing outsite of sidebar 2024-02-13 08:16:58 +05:30
5d146ca86e fix(#1750): fixed downloaded PDF have issue(s) with Typography options
Typography option toggle class were added in DOM #root but when server is printing the resume, a child section of the DOM #root is cloned and inserted for pdf processing which miss out the Typography option toggle class in the parent DOM, resulting in bug, Thus, the same class were added to each cloned DOM node.
2024-02-02 00:52:50 +05:30
e9ec397663 chore(i18n): sync sources from crowdin translations 2024-02-01 10:13:20 +01:00
c4f552f44a Merge pull request #1749 from AmruthPillai/l10n
New Translations from Crowdin
2024-02-01 06:14:40 +01:00
1f274d8ae9 New Crowdin translations by GitHub Action 2024-02-01 00:09:11 +00:00
846050f031 Update pikachu.tsx 2024-01-30 10:10:09 -08:00
d23b35de5e Update glalie.tsx 2024-01-30 10:08:47 -08:00
2e4c660c97 Update gengar.tsx 2024-01-30 10:08:23 -08:00
4d5dc3869e Update ditto.tsx 2024-01-30 10:07:48 -08:00
d4ca61d751 Update chikorita.tsx 2024-01-30 10:05:52 -08:00
5f1da943b8 Update rhyhorn.tsx 2024-01-30 10:05:16 -08:00
0803ad7e2d Update bronzor.tsx 2024-01-30 10:05:13 -08:00
1326895e6b fix: resume entry header items should be top-vertical-aligned, not middle-vertical-aligned 2024-01-30 10:01:20 -08:00
bc17157204 Merge pull request #1744 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-28 09:25:29 +01:00
880b3b5d37 New Crowdin translations by GitHub Action 2024-01-28 00:08:41 +00:00
d9d4085591 Merge pull request #1742 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-26 08:13:43 +01:00
acedc6b116 New Crowdin translations by GitHub Action 2024-01-26 00:08:13 +00:00
4eac1c0024 Merge pull request #1737 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-25 09:35:08 +01:00
e86c390862 New Crowdin translations by GitHub Action 2024-01-25 00:08:41 +00:00
7f877861d1 Merge pull request #1734 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-23 05:19:17 +01:00
6f97c06e3d New Crowdin translations by GitHub Action 2024-01-23 00:08:46 +00:00
af4a96822c Merge pull request #1730 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-22 09:09:25 +01:00
f4bedc668d New Crowdin translations by GitHub Action 2024-01-22 00:08:53 +00:00
8e8b695cbc Add a keyboard shortcut for adding a hyperlink
Use the conventional Ctrl+K keyboard shortcut for adding a hyperlink
2024-01-21 10:38:12 -08:00
37a869fa24 Move core logic of setLink to outer scope
Will allow code changes in a subsequent commit to access the function
and utilize the same core logic
2024-01-21 10:37:15 -08:00
176cac4fbe Instantiate Link with inclusive set to false
Ensures consistent behavior with other common text editors, wherein
after applying a link to text, the following text does not also contain
the link
2024-01-21 09:12:05 -08:00
debfd9167f add eslint ignore 2024-01-21 11:12:35 +01:00
b68b5a7747 add digitalocean attribution 2024-01-21 11:00:24 +01:00
1aaaaeca20 format files 2024-01-21 10:44:22 +01:00
0590367b7f Merge pull request #1725 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-21 09:09:11 +01:00
209947266b New Crowdin translations by GitHub Action 2024-01-21 00:09:20 +00:00
8bca7f5390 release: v4.0.4 2024-01-19 10:04:23 +01:00
643348046f Merge pull request #1714 from calumapplepie/patch-1
Update profile.ts to add default values
2024-01-19 09:58:04 +01:00
9843f39510 Merge pull request #1717 from SergejKasper/fix-linkedIn-import-fails
fix(import): LinkedIn Profile.csv parsing fixes
2024-01-19 09:56:39 +01:00
14362b92c1 Merge pull request #1721 from CorreyL/bugfix/save-pending-keyword-input
[Bugfix] Save Pending Keyword Input
2024-01-19 09:55:42 +01:00
ac322a9bd4 Add pending inputs as a new Keyword
Ensures that any Keywords that were intended to be added are not lost
2024-01-18 19:45:29 -08:00
390f274d06 Dialogs that accept keywords, track pending inputs
In every dialog component that allows the input of Keyword, instantiate
a pendingKeyword State to track if the BadgeIput element has a pending
input
2024-01-18 19:42:24 -08:00
da23b06f71 Capture the current Keyword in the input in state
Keeps a parent State that tracks if a pending Keyword is in the input
field up-to-date
2024-01-18 19:39:53 -08:00
469f1d5cdd Merge pull request #1716 from SergejKasper/fix-po-loader-issue
fix(vite): fix .po file loader issue
2024-01-15 14:14:45 +01:00
45a936c05d fix(import): LinkedIn Profile.csv parsing fixes 2024-01-15 10:43:32 +01:00
84cafba0c2 fix(vite): fix .po file loader issue 2024-01-15 09:23:22 +01:00
e1ec60af92 Merge pull request #1705 from RJohnPaul/patch-1
Update project.json with cleaning and formatting
2024-01-12 08:40:19 +01:00
3cde03e9cb Merge pull request #1711 from AmruthPillai/dependabot/npm_and_yarn/follow-redirects-1.15.4
build(deps): bump follow-redirects from 1.15.3 to 1.15.4
2024-01-12 08:40:02 +01:00
b7c3b84ba2 Merge pull request #1713 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-12 08:39:53 +01:00
b08b86ca9d Update profile.ts to add default values
Add some default values to the LinkedIn data import in case of missing data.
Default values used in place of optional data in order to minimize changes to other parts of the codebase; since optionals require an extra step to handle.  Default values of whitespace might work better,
but I cannot test to be sure.

Closes: #1604
2024-01-11 21:50:37 -05:00
a37edc2caa New Crowdin translations by GitHub Action 2024-01-12 00:08:18 +00:00
f0c778b37a Merge pull request #1710 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-11 07:18:32 +01:00
675a92a17f build(deps): bump follow-redirects from 1.15.3 to 1.15.4
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-11 04:32:26 +00:00
9197729387 New Crowdin translations by GitHub Action 2024-01-11 00:08:30 +00:00
99cb7f512e Merge pull request #1706 from datamoc/main
Minor changes on logo (more regular, smooth lines, png and svg favicon)
2024-01-09 09:54:05 +01:00
0f765af468 Minor changes on logo (more regular, smooth lines, png and svg favicon)
.vs/* added in .gitignore
2024-01-06 18:37:48 +01:00
f5ce9af3e0 Update project.json with cleaning and formatting 2024-01-06 19:23:24 +05:30
8500c30f59 Merge pull request #1704 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-06 08:50:26 +01:00
2f4065b5a3 New Crowdin translations by GitHub Action 2024-01-06 00:08:29 +00:00
fb4ecee897 Merge pull request #1703 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-05 22:31:19 +01:00
735352c3d3 New Crowdin translations by GitHub Action 2024-01-05 00:08:26 +00:00
f89ad7cd1a Merge pull request #1700 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-04 09:35:20 +01:00
bfadfb1a4f New Crowdin translations by GitHub Action 2024-01-04 00:08:36 +00:00
af306746d3 Merge pull request #1696 from eltociear/patch-1
Update CONTRIBUTING.md
2024-01-02 09:06:41 +01:00
d67513b3f4 Merge pull request #1678 from AmruthPillai/l10n
New Translations from Crowdin
2024-01-02 09:06:09 +01:00
0bae5f9422 New Crowdin translations by GitHub Action 2024-01-02 00:08:21 +00:00
791d8e58d9 Update CONTRIBUTING.md
decriptive -> descriptive
2023-12-28 01:07:07 +09:00
1fca2abd93 Merge pull request #1675 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-19 09:09:38 +05:30
de2b7eb1ff New Crowdin translations by GitHub Action 2023-12-19 00:08:30 +00:00
c8840551a1 Merge pull request #1673 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-17 09:06:31 +05:30
302f112b15 New Crowdin translations by GitHub Action 2023-12-17 00:09:08 +00:00
f2d8f99fb3 Merge pull request #1669 from juliandaz11/patch-2
Update change-tone.ts
2023-12-15 11:24:18 +05:30
7ed2b7dc16 Merge pull request #1668 from juliandaz11/patch-1
Update improve-writing.ts
2023-12-15 11:24:06 +05:30
acbed2ed74 Merge pull request #1670 from juliandaz11/patch-3
Update fix-grammar.ts
2023-12-15 11:23:54 +05:30
a095cb8255 Update fix-grammar.ts
returns in the language of the text
2023-12-14 23:16:53 +00:00
5fb6082cce Update change-tone.ts
returns in the language of the text
2023-12-14 23:15:44 +00:00
51408eb03c Update improve-writing.ts
returns in the language of the text
2023-12-14 23:12:59 +00:00
c51b69ade5 Merge pull request #1666 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-14 08:05:40 +05:30
db413378eb New Crowdin translations by GitHub Action 2023-12-14 00:08:32 +00:00
f82b163c7a Merge pull request #1662 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-12 14:37:29 +05:30
1a70a847f7 New Crowdin translations by GitHub Action 2023-12-12 00:08:28 +00:00
b8f3a62bc5 Merge pull request #1650 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-11 13:21:02 +05:30
4f23f5fe01 New Crowdin translations by GitHub Action 2023-12-11 00:08:39 +00:00
b5de1b764a Merge pull request #1649 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-07 11:21:22 +05:30
6444cd3175 New Crowdin translations by GitHub Action 2023-12-07 00:08:22 +00:00
181aa4070c bump version to 4.0.3 2023-12-06 20:31:26 +05:30
698c46e419 Merge pull request #1647 from AmruthPillai/dependabot/npm_and_yarn/vite-5.0.5
build(deps-dev): bump vite from 5.0.2 to 5.0.5
2023-12-06 19:50:13 +05:30
bbb878aaf4 Merge pull request #1648 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-06 19:50:03 +05:30
f54890dc36 Merge pull request #1635 from MYSTYX7/main
Fixed Overlapping LocaleSwitch & ThemeSwitch Button #1634
2023-12-06 19:49:52 +05:30
0737280c72 New Crowdin translations by GitHub Action 2023-12-06 00:08:33 +00:00
9edfe257c4 build(deps-dev): bump vite from 5.0.2 to 5.0.5
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.2 to 5.0.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.0.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-05 23:47:14 +00:00
28c1aaf3ff Merge pull request #1643 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-05 06:59:08 +05:30
f8c662b064 New Crowdin translations by GitHub Action 2023-12-05 00:08:22 +00:00
aa8a8e378e fix(auth): Locale & Theme switch in authentication 2023-12-04 16:29:13 +05:30
11edfe5038 Merge branch 'main' of https://github.com/MYSTYX7/Reactive-Resume 2023-12-04 16:28:16 +05:30
3ddb2c192d Merge pull request #1640 from otterDeveloper/bucket-skip-check
Add option to skip storage bucket check & creation in storage service
2023-12-04 11:36:43 +01:00
5a149f9025 Merge branch 'main' into bucket-skip-check 2023-12-04 11:14:01 +01:00
9955a64c56 add warning if skipped bucket creation 2023-12-04 01:34:52 -06:00
1de4b5c6a1 Merge pull request #1639 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-04 05:38:29 +01:00
b8c5aafa1d Add option to skip storage bucket check & creation in storage service 2023-12-03 19:59:01 -06:00
ac7e354ae2 New Crowdin translations by GitHub Action 2023-12-04 00:08:32 +00:00
63697f97cb Merge pull request #1632 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-03 05:14:32 +01:00
45833b9067 Update CONTRIBUTING.md 2023-12-03 09:44:18 +05:30
1562180784 New Crowdin translations by GitHub Action 2023-12-03 00:08:26 +00:00
7476b1f7f4 Merge branch 'main' of https://github.com/MYSTYX7/Reactive-Resume 2023-12-03 00:06:09 +05:30
d0ef127fe1 fix(auth): Fix Locale & ThemeSwitch button overlap 2023-12-03 00:05:59 +05:30
f7849e02ee build(deps-dev): bump @adobe/css-tools from 4.3.1 to 4.3.2
Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
- [Changelog](https://github.com/adobe/css-tools/blob/main/History.md)
- [Commits](https://github.com/adobe/css-tools/commits)

---
updated-dependencies:
- dependency-name: "@adobe/css-tools"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-03 00:05:23 +05:30
f7e92a516a fix(auth): Fix Locale & ThemeSwitch button overlap 2023-12-03 00:00:10 +05:30
d061829beb fix(auth): Fix Locale & ThemeSwitch button overlap 2023-12-02 23:59:55 +05:30
62f4640cb3 Merge branch 'main' of https://github.com/MYSTYX7/Reactive-Resume 2023-12-02 23:53:38 +05:30
fb41d3afc6 fix(auth): Fix Locale & ThemeSwitch button overlap 2023-12-02 23:53:34 +05:30
7124563225 fix(auth): Fix Locale & ThemeSwitch button overlap 2023-12-02 23:47:20 +05:30
a8ede8faed Minor change 2023-12-02 23:46:05 +05:30
b73aeb487b Fixed Locale & ThemeSwitch Button overlap issue 2023-12-02 23:36:08 +05:30
11cd2d9b15 Merge pull request #1630 from AmruthPillai/dependabot/npm_and_yarn/adobe/css-tools-4.3.2
build(deps-dev): bump @adobe/css-tools from 4.3.1 to 4.3.2
2023-12-01 09:43:40 +01:00
7aae3fc7d5 build(deps-dev): bump @adobe/css-tools from 4.3.1 to 4.3.2
Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
- [Changelog](https://github.com/adobe/css-tools/blob/main/History.md)
- [Commits](https://github.com/adobe/css-tools/commits)

---
updated-dependencies:
- dependency-name: "@adobe/css-tools"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-01 06:45:01 +00:00
123e39270c Merge pull request #1629 from AmruthPillai/l10n
New Translations from Crowdin
2023-12-01 05:37:31 +01:00
fab7c44fa1 New Crowdin translations by GitHub Action 2023-12-01 00:09:26 +00:00
86430bb143 Merge pull request #1622 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-30 14:00:42 +01:00
c5b8d3b7b4 New Crowdin translations by GitHub Action 2023-11-30 00:08:21 +00:00
ceaabe2b66 Merge pull request #1601 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-28 08:17:36 +01:00
2f6da5266d New Crowdin translations by GitHub Action 2023-11-28 00:08:21 +00:00
9378dc56e8 Merge pull request #1614 from justindhillon/fix-broken-links
Fixed broken link to LICENSE
2023-11-27 22:18:42 +01:00
187b9bcf43 fixed broken link to LICENSE 2023-11-27 10:26:06 -08:00
a55c1950d0 Merge pull request #1597 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-26 15:54:06 +01:00
27bcd881a1 New Crowdin translations by GitHub Action 2023-11-26 14:53:35 +00:00
922ef11883 ci: bump version to 4.0.2 2023-11-26 15:51:53 +01:00
57aac2ab62 fix: label date -> date or date range, closes #1564 2023-11-26 15:50:02 +01:00
e26ca2adf1 feat: add env var VITE_DISABLE_SIGNUPS to allow admins to disable all signups, closes #1592 2023-11-26 15:48:17 +01:00
f090573147 - fix: add line-clamp-1 on button text, closes #1585
- fix: add drag handle icon to panels
2023-11-26 15:37:58 +01:00
062748eb5c fix: openai chat completions api upgrade, closes #1586 2023-11-26 15:32:56 +01:00
9298a7473e fix: wrap rich input toolbar, closes #1588 2023-11-26 15:26:39 +01:00
bf9cd2b248 fix: language selector in settings 2023-11-26 15:25:52 +01:00
4f4919566d fix: language selector in settings 2023-11-26 15:25:47 +01:00
caa8a63d86 Merge pull request #1596 from AmruthPillai/1572-bug-popover-is-showing-behind-modal
fix: modify z-index for dialogs to fix popover being hidden
2023-11-26 15:16:55 +01:00
73322acde1 fix: modify z-index for dialogs to fix popover being hidden 2023-11-26 14:55:37 +01:00
afb8b6389c Merge pull request #1595 from AmruthPillai/1589-feature-request-for-old-template
feat(templates): redesign and add back in the original templates from v3
2023-11-26 14:40:16 +01:00
7db0c4d60a ci: run prettier formatting, fix ci workflow to not run twice 2023-11-26 14:37:12 +01:00
446c5db68f feat(templates): redesign and add back in the original templates from v3 2023-11-26 14:33:40 +01:00
765bf71220 Merge pull request #1593 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-26 10:28:00 +01:00
d2342b78e6 Merge branch 'main' into l10n 2023-11-26 10:26:11 +01:00
37e50684e3 fix(i18n): update sources 2023-11-26 10:22:42 +01:00
2d31905d56 New Crowdin translations by GitHub Action 2023-11-26 00:08:57 +00:00
9418bcf44f update dependencies 2023-11-25 02:48:48 +01:00
68f8c22770 Merge pull request #1587 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-25 01:32:43 +01:00
3b7ab09e77 New Crowdin translations by GitHub Action 2023-11-25 00:08:04 +00:00
6a7032fe90 Merge pull request #1580 from AmruthPillai/1563-bug-search-for-language-in-settings-does-not-work-as-expected
fix: implement fuzzy search with locale switcher and settings page
2023-11-24 03:56:07 +01:00
e9d888b07c fix: implement fuzzy search with locale switcher and settings page 2023-11-24 03:53:09 +01:00
016e9aca77 add prisma generate to ci step 2023-11-24 02:00:28 +01:00
a4843cf7e6 ci: attempt to fix ci scripts by not importing prisma as type 2023-11-24 01:48:14 +01:00
12b52af121 Merge pull request #1578 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-24 01:25:23 +01:00
2aa18aa262 New Crowdin translations by GitHub Action 2023-11-24 00:13:52 +00:00
28e3fa5271 Merge pull request #1577 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-24 01:11:45 +01:00
26d5c83814 update translations 2023-11-24 01:11:02 +01:00
a695f13e3e New Crowdin translations by GitHub Action 2023-11-24 00:07:51 +00:00
11ce4072d0 update github issue templates 2023-11-24 01:07:32 +01:00
13dad73c64 update dependencies 2023-11-24 01:07:19 +01:00
c4d3dd89d7 feat: add product hunt banner to landing page 2023-11-24 01:07:02 +01:00
bdcae326f4 ci: pin postgres version to 15 2023-11-23 22:34:33 +01:00
563abc074c Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2023-11-23 22:34:23 +01:00
d36fc1b31d fix(parser): make reactive-resume v3 parser more lenient with validation 2023-11-23 22:34:21 +01:00
1bf66e5e4a Merge pull request #1575 from MyLiveCV/BUG-1574
Bug Fixed - 1574 - JSON Schema Field issue
2023-11-23 22:31:31 +01:00
4750410af0 Merge pull request #1571 from MyLiveCV/BUG-1569
BUG-1569 - Add Lock Option for List View
2023-11-23 22:31:01 +01:00
0403308847 Bug Fixed - 1574 - JSON Schema Field issue 2023-11-24 01:40:02 +05:30
f2ca131aee BUG-1569 - Add Lock Option for List View 2023-11-24 00:31:11 +05:30
edc46da933 Merge pull request #1570 from MyLiveCV/BUG-1569
Bug Fix for 1569 - `On Dashboard in List View Lock Menu missing`
2023-11-23 19:59:21 +01:00
c53ecc5476 Merge pull request #1567 from MyLiveCV/BUG-1566
Bug Fix for 1566 - `Copy Link to resume Icon not working on Builder Toolbar for Public Resumes
2023-11-23 19:55:17 +01:00
482c0b4982 BUG-1569 - Add Lock Option for List View 2023-11-24 00:21:09 +05:30
e00efd03a1 BUG-1566 - Add Copy functionality 2023-11-23 22:37:13 +05:30
0984f11f39 Merge pull request #1 from AmruthPillai/main
main pull
2023-11-23 22:14:14 +05:30
6e53a0f7a3 fix: auth layout if email is the only auth provider 2023-11-23 17:15:49 +01:00
7131518f3f docs: uncomment postgres in development docker compose 2023-11-23 14:01:18 +01:00
6ba1996084 fix: booleans not cooercing properly in env vars 2023-11-23 14:00:54 +01:00
4411ee7d1d fix: add link to docs in hero section 2023-11-23 14:00:33 +01:00
cd1704740e docs: update .env.example with storage url suffix, closes #1562 2023-11-23 14:00:08 +01:00
512f59f1e8 fix: update swarm.yml example 2023-11-23 11:55:02 +01:00
f6ad346f9b fix: add env var STORAGE_USE_SSL to toggle on/off SSL mode in MinIO Client, closes #1561 2023-11-23 10:13:08 +01:00
a661076686 fix: throw appropriate errors when connecting to storage bucket, closes #1561 2023-11-23 09:01:25 +01:00
d7abd74af3 - add workflow_dispatch to lint-test-build 2023-11-23 08:56:23 +01:00
3f35672f72 Merge pull request #1559 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-23 07:04:59 +01:00
0555464586 New Crowdin translations by GitHub Action 2023-11-23 00:08:14 +00:00
94f330e19b enable linux/arm64 builds 2023-11-23 00:15:39 +01:00
f716726e80 Update README.md 2023-11-23 00:11:05 +01:00
8c6aaf9284 Update FUNDING.yml 2023-11-23 00:09:58 +01:00
aebfd92e09 - remove stale bot
- pin node version in dockerfile
2023-11-22 23:55:40 +01:00
fa7e2dad5f add concurrency to lint-test-build 2023-11-22 23:28:46 +01:00
64d64958f6 add engines.node to package.json 2023-11-22 23:27:53 +01:00
c0869fdb3e add packageManager key to package.json 2023-11-22 23:26:56 +01:00
04a9c988e6 implement ci action with nx cloud 2023-11-22 23:24:19 +01:00
37c17ce8f3 fix ts error on parser 2023-11-22 23:04:44 +01:00
6c7ca9472f Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-22 22:57:37 +01:00
4dfaafc929 bump version to 4.0.0 2023-11-22 22:57:36 +01:00
afdd3d7736 Merge pull request #1557 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 22:55:33 +01:00
c19b759237 update github actions to modify triggers 2023-11-22 22:54:36 +01:00
12505151c1 New Crowdin translations by GitHub Action 2023-11-22 21:51:35 +00:00
4687091ebd fix an assorted set of issues, more info on linear 2023-11-22 22:50:21 +01:00
4baecb22e9 fix: add logger for errors, return correct error when resume is locked 2023-11-22 22:25:54 +01:00
27758c72e3 feat: add tooltip to url-input label icon, closes RX-14 2023-11-22 22:25:30 +01:00
1580455b3f - update translations
- add mail_from env var
- update docs for swarm deployment
2023-11-22 22:05:54 +01:00
da2f4dba60 feat: implement back navigation on some of the auth flows, closes RX-13 2023-11-22 16:01:08 +01:00
bc5b4cb9ad Merge pull request #1556 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 15:50:52 +01:00
4c66f5c503 New Crowdin translations by GitHub Action 2023-11-22 14:48:56 +00:00
cf2c8e3fe4 Merge pull request #1555 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 15:48:25 +01:00
78c435681b fix: merge similar translation strings, closes RX-12 2023-11-22 15:47:27 +01:00
db83dabe86 New Crowdin translations by GitHub Action 2023-11-22 14:46:15 +00:00
436efe0f59 fix: RX-11 merge similar strings 2023-11-22 15:44:49 +01:00
69b99b9127 Set version of libraries to 0.0.1 2023-11-22 15:43:50 +01:00
df5a6e9151 Merge pull request #1554 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 11:00:13 +01:00
bd04dc9b1e New Crowdin translations by GitHub Action 2023-11-22 08:09:42 +00:00
dfb3ef60dd - add docker-swarm deployment example
- update dependencies
2023-11-22 09:08:23 +01:00
55e94ca792 Merge pull request #1553 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 15:20:33 +01:00
1b0e9f4b0c New Crowdin translations by GitHub Action 2023-11-21 14:11:50 +00:00
23766ee007 Merge pull request #1552 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 15:10:22 +01:00
7258259cfd New Crowdin translations by GitHub Action 2023-11-21 13:41:38 +00:00
8c621f0028 Merge pull request #1551 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 14:40:19 +01:00
d109dcca87 New Crowdin translations by GitHub Action 2023-11-21 12:51:24 +00:00
0846e04ea4 Merge pull request #1550 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 13:49:56 +01:00
d9abcbadac New Crowdin translations by GitHub Action 2023-11-21 12:47:30 +00:00
2a3ae68948 implement button to download PDF from a public resume page 2023-11-21 13:45:39 +01:00
422865b3ad - update bug-report template
- update dependencies
2023-11-21 12:42:58 +01:00
32a1a685cc add another "\n" to pull request template of sync crowdin action 2023-11-21 10:18:45 +01:00
cfd161f080 Merge pull request #1549 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 09:50:11 +01:00
0dcf229e19 New Crowdin translations by GitHub Action 2023-11-21 08:45:58 +00:00
1825fc3283 - implement disable_email_auth env var
- add sync crowdin translations github action
2023-11-21 09:44:37 +01:00
635f743e56 Merge pull request #1548 from otterDeveloper/v4-oauth-env-docs
[v4]docs: Add example of oauth callback url
2023-11-20 08:32:10 +01:00
16cb8c02ed docs: show example of oauth callback url 2023-11-19 15:24:24 -06:00
f9d965787d - fix pikachu template alignment
- update sample resume
2023-11-19 10:45:00 +01:00
55d81f4771 revert lingui changes 2023-11-19 10:35:12 +01:00
545dffa351 fix dockerfile 2023-11-19 10:22:19 +01:00
7c507052fd replace lingui.config.ts with .linguirc 2023-11-19 10:15:14 +01:00
bb28de7571 fix sidebar padding on chikorita 2023-11-19 10:10:14 +01:00
8b217dfcfa - upgrade react-resizable-panels to latest version
- update translations
- remove cypress
- add await to all return blocks
2023-11-19 09:52:55 +01:00
9c4db2956b update README.md 2023-11-17 14:14:14 +01:00
626c131f7d - Add templatesCount variable to FeaturesSection
component
2023-11-17 14:01:28 +01:00
fe9c19fc4e add "notranslate" tag, handle default locale fallback, fix certifications id in metadata 2023-11-17 13:28:58 +01:00
33bcadd457 sort package.json 2023-11-17 09:02:38 +01:00
9bf125e024 update i18n messages, remove pseudo locale 2023-11-17 08:58:27 +01:00
78c06abbd4 update default layout 2023-11-17 08:44:53 +01:00
34247f13b6 design nosepass template, add tests, add template previews 2023-11-17 08:31:12 +01:00
0b4cb71320 export port 3000 on dockerfile 2023-11-15 16:44:27 +01:00
8171e90a6c switch from sessionStorage to localStorage 2023-11-15 06:34:17 +01:00
f7a21df042 bump version 2023-11-14 21:55:47 +01:00
72852f90e2 pin browserless/chrome version as latest it too unstable 2023-11-14 21:53:10 +01:00
044ef8bdb5 use npm run start instead of node as CMD 2023-11-14 20:15:12 +01:00
07421a5064 empty commit 2023-11-14 19:15:29 +01:00
1a32f1bc26 switch from pnpm to npm 2023-11-14 19:11:17 +01:00
02fdb8c85b switch from pnpm to npm 2023-11-14 19:07:56 +01:00
8ae9215309 switch from pnpm to npm 2023-11-14 19:05:24 +01:00
277bb2a70b fix(ci): modify prisma location 2023-11-14 16:37:23 +01:00
457aed5f46 fix(printer): increase timeout to 15s 2023-11-14 16:06:16 +01:00
36b1930c0d fix: remove crowdin_distribution_hash env 2023-11-14 14:00:27 +01:00
f24bbe7631 refactor: 🔊 crowdin cli test run, add/remove translations 2023-11-14 13:58:39 +01:00
3fb8e06f15 fix(i18n): t macro usage 2023-11-14 13:27:35 +01:00
f49439f80c Merge pull request #1541 from AmruthPillai/l10n
New Crowdin updates
2023-11-14 13:25:14 +01:00
3fbb473ecb New translations messages.po (Chinese Traditional) 2023-11-14 13:23:20 +01:00
f863c7d28d New translations messages.po (Chinese Simplified) 2023-11-14 13:23:19 +01:00
d7c5cf51e6 New translations messages.po (Ukrainian) 2023-11-14 13:23:17 +01:00
a11e1fe339 New translations messages.po (Turkish) 2023-11-14 13:23:16 +01:00
c9d469d973 New translations messages.po (Swedish) 2023-11-14 13:23:14 +01:00
9f36b19e20 New translations messages.po (Serbian (Cyrillic)) 2023-11-14 13:23:13 +01:00
b6d77bae17 New translations messages.po (Russian) 2023-11-14 13:23:12 +01:00
ec4cf23c52 New translations messages.po (Portuguese) 2023-11-14 13:23:10 +01:00
46c585f325 New translations messages.po (Polish) 2023-11-14 13:23:09 +01:00
cd63244289 New translations messages.po (Norwegian) 2023-11-14 13:23:08 +01:00
204e7d0015 New translations messages.po (Dutch) 2023-11-14 13:23:07 +01:00
6b136608f7 New translations messages.po (Lithuanian) 2023-11-14 13:23:06 +01:00
f73277b315 New translations messages.po (Korean) 2023-11-14 13:23:04 +01:00
a703baf054 New translations messages.po (Japanese) 2023-11-14 13:23:03 +01:00
30479c20ee New translations messages.po (Italian) 2023-11-14 13:23:01 +01:00
cd2d0dcb8e New translations messages.po (Hungarian) 2023-11-14 13:23:00 +01:00
60d3eff764 New translations messages.po (Hebrew) 2023-11-14 13:22:59 +01:00
a3e6409171 New translations messages.po (Finnish) 2023-11-14 13:22:58 +01:00
aa38217cb6 New translations messages.po (Greek) 2023-11-14 13:22:57 +01:00
b8f96a837a New translations messages.po (German) 2023-11-14 13:22:56 +01:00
bd33ae7798 New translations messages.po (Danish) 2023-11-14 13:22:55 +01:00
1bd709f484 New translations messages.po (Czech) 2023-11-14 13:22:53 +01:00
59378f162f New translations messages.po (Catalan) 2023-11-14 13:22:52 +01:00
cdf36cb49d New translations messages.po (Bulgarian) 2023-11-14 13:22:51 +01:00
0c069b1e92 New translations messages.po (Arabic) 2023-11-14 13:22:50 +01:00
774720bae0 New translations messages.po (Afrikaans) 2023-11-14 13:22:49 +01:00
d4f36eecf5 New translations messages.po (Spanish) 2023-11-14 13:22:47 +01:00
0870bfaa02 New translations messages.po (French) 2023-11-14 13:22:46 +01:00
350823e081 New translations messages.po (Romanian) 2023-11-14 13:22:45 +01:00
2db52b7ef2 feat(i18n): translate error messages 2023-11-14 13:02:38 +01:00
888b4db0bb fix(mobile): check for responsiveness, add scrollarea support 2023-11-14 11:43:28 +01:00
6303071410 fix(i18n): load translations from fs 2023-11-14 09:14:21 +01:00
d1f54010c7 Update Crowdin configuration file 2023-11-14 09:13:08 +01:00
49d0882d7c Merge pull request #1537 from AmruthPillai/l10n
New Crowdin updates
2023-11-14 07:53:49 +01:00
5358951557 New translations messages.po (Zulu) 2023-11-14 07:51:50 +01:00
0b6331c28d New translations messages.po (Nepali) 2023-11-14 07:51:49 +01:00
befc4f1cb0 New translations messages.po (Amharic) 2023-11-14 07:51:48 +01:00
b965839091 New translations messages.po (Odia) 2023-11-14 07:51:47 +01:00
507621e3a8 New translations messages.po (Kannada) 2023-11-14 07:51:45 +01:00
7e4c4f798a New translations messages.po (Malayalam) 2023-11-14 07:51:44 +01:00
9b09b47b78 New translations messages.po (Telugu) 2023-11-14 07:51:43 +01:00
3a64eefef7 New translations messages.po (Hindi) 2023-11-14 07:51:42 +01:00
7b820503ae New translations messages.po (Thai) 2023-11-14 07:51:41 +01:00
0c386671e1 New translations messages.po (Marathi) 2023-11-14 07:51:40 +01:00
56f780e0eb New translations messages.po (Bengali) 2023-11-14 07:51:39 +01:00
3b2698ca19 New translations messages.po (Tamil) 2023-11-14 07:51:38 +01:00
8432fc5f10 New translations messages.po (Khmer) 2023-11-14 07:51:37 +01:00
3996e49ae7 New translations messages.po (Persian) 2023-11-14 07:51:36 +01:00
a30504e6a5 New translations messages.po (Indonesian) 2023-11-14 07:51:35 +01:00
77f704ac9b New translations messages.po (Portuguese, Brazilian) 2023-11-14 07:51:34 +01:00
604a89051d New translations messages.po (Vietnamese) 2023-11-14 07:51:33 +01:00
e0b1d7ed67 New translations messages.po (English) 2023-11-14 07:51:32 +01:00
caa1b56fd3 New translations messages.po (Chinese Traditional) 2023-11-14 07:51:31 +01:00
5955f5214d New translations messages.po (Chinese Simplified) 2023-11-14 07:51:30 +01:00
2acb34fa90 New translations messages.po (Ukrainian) 2023-11-14 07:51:29 +01:00
57a28e1462 New translations messages.po (Turkish) 2023-11-14 07:51:28 +01:00
dce63e926e New translations messages.po (Swedish) 2023-11-14 07:51:26 +01:00
90eb4c770f New translations messages.po (Serbian (Cyrillic)) 2023-11-14 07:51:25 +01:00
820d8720c0 New translations messages.po (Russian) 2023-11-14 07:51:24 +01:00
3691f726e7 New translations messages.po (Portuguese) 2023-11-14 07:51:23 +01:00
7339b7436c New translations messages.po (Polish) 2023-11-14 07:51:22 +01:00
3364c9fbaa New translations messages.po (Norwegian) 2023-11-14 07:51:21 +01:00
db21cbc4ff New translations messages.po (Dutch) 2023-11-14 07:51:20 +01:00
e49c89cc39 New translations messages.po (Lithuanian) 2023-11-14 07:51:19 +01:00
ba25d92680 New translations messages.po (Korean) 2023-11-14 07:51:18 +01:00
ccb3513dbd New translations messages.po (Japanese) 2023-11-14 07:51:17 +01:00
e191c3ba67 New translations messages.po (Italian) 2023-11-14 07:51:16 +01:00
267ae79724 New translations messages.po (Hungarian) 2023-11-14 07:51:15 +01:00
08115fa521 New translations messages.po (Hebrew) 2023-11-14 07:51:14 +01:00
d4612d6e28 New translations messages.po (Finnish) 2023-11-14 07:51:13 +01:00
0a95ce5a9c New translations messages.po (Greek) 2023-11-14 07:51:11 +01:00
505f2f473e New translations messages.po (German) 2023-11-14 07:51:10 +01:00
a99198b9b7 New translations messages.po (Danish) 2023-11-14 07:51:09 +01:00
f2bc6f214d New translations messages.po (Czech) 2023-11-14 07:51:08 +01:00
323cd07830 New translations messages.po (Catalan) 2023-11-14 07:51:07 +01:00
adc2adc6f4 New translations messages.po (Bulgarian) 2023-11-14 07:51:06 +01:00
58f2291774 New translations messages.po (Arabic) 2023-11-14 07:51:05 +01:00
1ed89053fe New translations messages.po (Afrikaans) 2023-11-14 07:51:04 +01:00
b4f72992ef New translations messages.po (Spanish) 2023-11-14 07:51:03 +01:00
f09acfbcaa New translations messages.po (French) 2023-11-14 07:51:01 +01:00
a6652b738f New translations messages.po (Romanian) 2023-11-14 07:51:00 +01:00
041d04cd84 Merge pull request #1536 from AmruthPillai/l10n
New Crowdin updates
2023-11-14 07:49:02 +01:00
faf3ea47f9 Update .gitignore 2023-11-14 07:48:51 +01:00
61f55bfb70 New translations messages.po (Zulu) 2023-11-14 07:30:25 +01:00
73dc01e2df New translations messages.po (Nepali) 2023-11-14 07:30:24 +01:00
800177e76e New translations messages.po (Amharic) 2023-11-14 07:30:23 +01:00
6dbc0a3999 New translations messages.po (Odia) 2023-11-14 07:30:22 +01:00
148de17b81 New translations messages.po (Kannada) 2023-11-14 07:30:20 +01:00
db3389d6a8 New translations messages.po (Malayalam) 2023-11-14 07:30:19 +01:00
7390f38837 New translations messages.po (Telugu) 2023-11-14 07:30:18 +01:00
133e5942cd New translations messages.po (Hindi) 2023-11-14 07:30:17 +01:00
2de0b8792b New translations messages.po (Thai) 2023-11-14 07:30:16 +01:00
36f1a2bdb3 New translations messages.po (Marathi) 2023-11-14 07:30:14 +01:00
899d0b0d9c New translations messages.po (Bengali) 2023-11-14 07:30:14 +01:00
8c4e21c503 New translations messages.po (Tamil) 2023-11-14 07:30:12 +01:00
a36f202d0a New translations messages.po (Khmer) 2023-11-14 07:30:11 +01:00
fe2f844e60 New translations messages.po (Persian) 2023-11-14 07:30:10 +01:00
cd80785f29 New translations messages.po (Indonesian) 2023-11-14 07:30:09 +01:00
bd065347cb New translations messages.po (Portuguese, Brazilian) 2023-11-14 07:30:08 +01:00
e0db70684a New translations messages.po (Vietnamese) 2023-11-14 07:30:07 +01:00
0298e7836c New translations messages.po (English) 2023-11-14 07:30:06 +01:00
1b9f1db8f8 New translations messages.po (Chinese Traditional) 2023-11-14 07:30:05 +01:00
06a7a5192c New translations messages.po (Chinese Simplified) 2023-11-14 07:30:03 +01:00
12958cec16 New translations messages.po (Ukrainian) 2023-11-14 07:30:02 +01:00
e7ca3aefec New translations messages.po (Turkish) 2023-11-14 07:30:01 +01:00
45a626576f New translations messages.po (Swedish) 2023-11-14 07:30:00 +01:00
cf2caccedf New translations messages.po (Serbian (Cyrillic)) 2023-11-14 07:29:59 +01:00
1d052a7856 New translations messages.po (Russian) 2023-11-14 07:29:58 +01:00
47dce2c066 New translations messages.po (Portuguese) 2023-11-14 07:29:57 +01:00
501f9b366e New translations messages.po (Polish) 2023-11-14 07:29:56 +01:00
3dfa06308f New translations messages.po (Norwegian) 2023-11-14 07:29:55 +01:00
0cb256d930 New translations messages.po (Dutch) 2023-11-14 07:29:54 +01:00
5682f042af New translations messages.po (Lithuanian) 2023-11-14 07:29:53 +01:00
0a6aa2e672 New translations messages.po (Korean) 2023-11-14 07:29:52 +01:00
af840e36f9 New translations messages.po (Japanese) 2023-11-14 07:29:51 +01:00
7fc03550e1 New translations messages.po (Italian) 2023-11-14 07:29:50 +01:00
4a24802637 New translations messages.po (Hungarian) 2023-11-14 07:29:49 +01:00
0602ffc646 New translations messages.po (Hebrew) 2023-11-14 07:29:48 +01:00
17ead86135 New translations messages.po (Finnish) 2023-11-14 07:29:47 +01:00
8f24cb6769 New translations messages.po (Greek) 2023-11-14 07:29:46 +01:00
b451f6f8b8 New translations messages.po (German) 2023-11-14 07:29:45 +01:00
bdbb4534ee New translations messages.po (Danish) 2023-11-14 07:29:44 +01:00
29d732bd68 New translations messages.po (Czech) 2023-11-14 07:29:43 +01:00
620172709c New translations messages.po (Catalan) 2023-11-14 07:29:42 +01:00
52a4b2831a New translations messages.po (Bulgarian) 2023-11-14 07:29:41 +01:00
7f0f419a4b New translations messages.po (Arabic) 2023-11-14 07:29:40 +01:00
7eae44c032 New translations messages.po (Afrikaans) 2023-11-14 07:29:39 +01:00
f50fe242e8 New translations messages.po (Spanish) 2023-11-14 07:29:38 +01:00
de5cf161bf New translations messages.po (French) 2023-11-14 07:29:37 +01:00
8e5182cb26 New translations messages.po (Romanian) 2023-11-14 07:29:36 +01:00
90ce0ad1bc Update Crowdin configuration file 2023-11-14 07:27:31 +01:00
2f46acd707 Update crowdin.yml 2023-11-14 07:27:09 +01:00
a2f0a88e02 fix(ci): update actions 2023-11-13 18:47:21 +01:00
bdc8353196 fix(ci): update-translations 2023-11-13 17:08:05 +01:00
6c9602e629 fix(ci): update-translations 2023-11-13 17:06:14 +01:00
d18b258761 feat(homepage): add new sections to homepage 2023-11-13 17:03:41 +01:00
4b1e33db80 Update Crowdin configuration file 2023-11-10 13:19:01 +01:00
48727be809 fix(i18n): delete local translations 2023-11-10 13:14:44 +01:00
d8c605d047 Merge pull request #1531 from AmruthPillai/l10n
New Translations
2023-11-10 11:23:43 +01:00
d5a0237975 New Crowdin translations by GitHub Action 2023-11-10 10:22:56 +00:00
f3ad994753 chore(i18n): update zu-ZA translations 2023-11-10 11:22:19 +01:00
1057d390da feat(ci): add update translations ci workflow 2023-11-10 09:49:55 +01:00
6f83937dbb feat(i18n): update crowdin configuration file 2023-11-10 09:36:20 +01:00
6f6e53bc95 Update Crowdin configuration file 2023-11-10 09:35:14 +01:00
ca6724c4da fix(i18n): fix crowdin.yml 2023-11-10 09:32:35 +01:00
0c7e551bf6 fix(github-action): update trigger for workflow 2023-11-10 09:31:29 +01:00
69d3cd899c feat(i18n): change location of translation files 2023-11-10 09:29:52 +01:00
c52a0d4da7 Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-10 09:29:38 +01:00
c10e5eb291 chore(deps): update dependencies 2023-11-10 09:29:35 +01:00
f41dbb3515 Update Crowdin configuration file 2023-11-10 09:21:03 +01:00
a07e4ee0b2 Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-10 09:19:36 +01:00
6573b7b8c0 fix(i18n): remove type in crowdin.yml 2023-11-10 09:19:18 +01:00
a72f6d2350 Update Crowdin configuration file 2023-11-10 09:16:23 +01:00
210c215beb fix(i18n): remove type in crowdin.yml 2023-11-10 09:16:00 +01:00
45c8b19081 Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-10 09:15:25 +01:00
af1739892c fix(i18n): remove type in crowdin.yml 2023-11-10 09:15:23 +01:00
5221b6f092 Update Crowdin configuration file 2023-11-10 09:13:37 +01:00
dec8bbc09e Merge pull request #1530 from AmruthPillai/feat(i18n)--implement-localization-using-linguijs
feat(i18n): implement localization using LinguiJS
2023-11-10 09:08:14 +01:00
6ad4358d70 feat(i18n): implement localization using LinguiJS 2023-11-10 09:07:47 +01:00
13d91411e3 chore(artboard): remove sample resume loaded on artboard for testing 2023-11-09 21:05:12 +01:00
92bb9f96a0 feat(artboard): implement 8 new templates 2023-11-09 21:01:01 +01:00
9acf7e8d22 Merge pull request #1524 from AmruthPillai/feat/v4/replace-templates-library-with-microfrontend-app
feat(templates): replace library with microfrontend app for templates
2023-11-07 16:43:26 +01:00
1aa8aa6900 feat(templates): replace library with microfrontend app for templates 2023-11-07 16:37:16 +01:00
fca61543c5 perf: 🎨 remove fragment imports, optimize templates 2023-11-06 22:37:32 +01:00
2d35057e57 Merge pull request #1519 from AmruthPillai/feat/v4/implement-resume-locking
feat(resume):  implement resume locking feature
2023-11-06 13:57:44 +01:00
015e284318 feat(resume): implement resume locking feature 2023-11-06 13:57:12 +01:00
9a0402d525 Merge pull request #1518 from AmruthPillai/feat/v4/implement-create-sample-resume-action
feat(resume-dialog):  implement create sample resume sub-action in create resume dialog
2023-11-06 12:11:36 +01:00
685dc3aa6e feat(resume-dialog): implement create sample resume sub-action in create resume dialog 2023-11-06 12:11:07 +01:00
9b833076db ci(registry): add quay.io to docker container registries 2023-11-06 10:17:29 +01:00
37e94eb7f0 ci(dockerfile): 🚀 fix copy paths in dockerfile 2023-11-06 10:05:50 +01:00
d6620e0816 ci: 🐛 log error to console 2023-11-06 09:52:38 +01:00
a88a794f29 fix(server): 👷 pass errors down to controller 2023-11-06 09:41:06 +01:00
4f5ccb9ab8 chore(server): update dependencies and add API tags to
controllers
2023-11-05 19:15:21 +01:00
e964965d59 docs(readme): 🎨 update formatting, change license header 2023-11-05 14:26:06 +01:00
fa248c47ad ci(dockerfile): copy prisma client correctly 2023-11-05 14:23:01 +01:00
d113f84c7e ci(compose): update docker compose deployment examples 2023-11-05 13:38:56 +01:00
eef91cf905 ci(v4.0.0-alpha): 🚀 running the first ci worflow 2023-11-05 13:17:14 +01:00
2f4fc71ecb ci(actions): 📝 implement close-stale-issues github actions workflow 2023-11-05 12:42:14 +01:00
22933bd412 refactor(v4.0.0-alpha): beginning of a new era 2023-11-05 12:31:42 +01:00
0ba6a444e2 project reset: clearing all files and folders 2023-08-31 13:22:03 +02:00
0941ba398a Merge pull request #1441 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.9.10
Bump org.jetbrains.kotlin.android from 1.9.0 to 1.9.10 in /app
2023-08-29 10:01:37 +02:00
e7b32890c6 Merge pull request #1440 from AmruthPillai/dependabot/github_actions/digitalocean/action-doctl-2.4.0
Bump digitalocean/action-doctl from 2.3.0 to 2.4.0
2023-08-29 10:01:29 +02:00
d4823c7b5e Merge pull request #1439 from AmruthPillai/dependabot/github_actions/actions/checkout-3.6.0
Bump actions/checkout from 3.5.3 to 3.6.0
2023-08-29 10:01:22 +02:00
593b1909ab Merge pull request #1434 from AmruthPillai/dependabot/docker/server/playwright-v1.37.1-focal
Bump playwright from v1.36.2-focal to v1.37.1-focal in /server
2023-08-29 10:01:14 +02:00
20cd4815f6 Merge pull request #1414 from Jubair70/fix_disable_click_outside_modal
fix: disable click outside all modals and check unsaved changes for education modal
2023-08-29 10:00:50 +02:00
e6b6b99e0f Bump org.jetbrains.kotlin.android from 1.9.0 to 1.9.10 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.9.0 to 1.9.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.9.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.0...v1.9.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 02:08:50 +00:00
a61e38b865 Bump digitalocean/action-doctl from 2.3.0 to 2.4.0
Bumps [digitalocean/action-doctl](https://github.com/digitalocean/action-doctl) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/digitalocean/action-doctl/releases)
- [Commits](https://github.com/digitalocean/action-doctl/compare/v2.3.0...v2.4.0)

---
updated-dependencies:
- dependency-name: digitalocean/action-doctl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 02:03:00 +00:00
e31ef6877b Bump actions/checkout from 3.5.3 to 3.6.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.3...v3.6.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 02:02:57 +00:00
67cc7ef258 Bump playwright from v1.36.2-focal to v1.37.1-focal in /server
Bumps playwright from v1.36.2-focal to v1.37.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 03:00:43 +00:00
ca6b10bdba fix formatting 2023-08-07 17:32:16 +06:00
cf7faa0e28 Merge branch 'main' into fix_disable_click_outside_modal 2023-08-07 16:31:24 +06:00
a293d209de update dependencies, bump up version to 3.8.4 2023-08-07 11:48:56 +02:00
5b9ea43090 Merge pull request #1418 from AmruthPillai/dependabot/npm_and_yarn/semver-5.7.2
Bump semver from 5.7.1 to 5.7.2
2023-08-07 09:48:05 +02:00
01b36ee8d8 Merge pull request #1420 from AmruthPillai/add-date-format-options
Add 'YYYY.MM' & 'YYYY.M' date format options
2023-08-07 09:30:07 +02:00
af1c314c36 Add 'YYYY.MM' & 'YYYY.M' date format options
closes #1419
2023-08-07 09:29:47 +02:00
9a607a590a Merge branch 'main' into fix_disable_click_outside_modal 2023-08-07 12:04:29 +06:00
d836e3d992 Bump semver from 5.7.1 to 5.7.2
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-03 06:19:13 +00:00
fb2db6839f Update README.md 2023-08-01 20:41:48 +02:00
787d0af9d1 Update README.md 2023-08-01 20:40:02 +02:00
c455cbb5ca Merge branch 'main' into fix_disable_click_outside_modal 2023-08-01 15:38:30 +06:00
dae142e5ce fix: disable click outside all modals and check unsaved changes for education modal 2023-08-01 15:29:31 +06:00
95de63f387 Merge pull request #1411 from Jubair70/fix/work_modal_datepicker
fix: Work Modal Datepicker popup
2023-07-31 16:12:19 +02:00
456b896310 Merge branch 'main' into fix/work_modal_datepicker 2023-07-31 15:09:40 +06:00
974bf7e032 fix: Work Modal Datepicker 2023-07-31 15:02:17 +06:00
8fa5324a39 Merge pull request #1410 from AmruthPillai/dependabot/docker/server/playwright-v1.36.2-focal
Bump playwright from v1.36.1-focal to v1.36.2-focal in /server
2023-07-31 10:31:58 +02:00
4ac9289344 Bump playwright from v1.36.1-focal to v1.36.2-focal in /server
Bumps playwright from v1.36.1-focal to v1.36.2-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-31 02:45:02 +00:00
d67272cf9e bump up version to 3.8.3 2023-07-27 20:09:26 +02:00
f937a88b9d attempt to fix leafish template issues 2023-07-27 20:08:47 +02:00
7465a7ec78 Merge pull request #1407 from AmruthPillai/fix/id-null-when-section-duplicated-cloned
Fix issue when a section is duplicated/cloned, ID is null
2023-07-27 19:51:01 +02:00
b53d8854df bump up version to 3.8.2 2023-07-27 19:43:19 +02:00
bffa0be909 fix dev dotenv script 2023-07-27 19:42:48 +02:00
06fee1696e update dependencies, fix birthDate error outline 2023-07-27 19:42:25 +02:00
f9a11092a6 Fix issue when a section is duplicated/cloned, ID is null 2023-07-27 18:35:19 +02:00
9c76999945 add start pipeline command to turbo 2023-07-25 15:37:10 +02:00
d23d1a615e Merge pull request #1403 from Jubair70/fix_education_modal_datepicker
fix: Education Date picker modal UI component
2023-07-25 14:50:46 +02:00
a5701a37a6 Merge pull request #1400 from rcwell/main
Fixed Date entered on any <Date> field is one day earlier
2023-07-25 14:50:39 +02:00
a739b25f42 update all dependencies 2023-07-25 14:50:10 +02:00
145aa14ba0 fix: Education Date picker modal 2023-07-24 18:27:39 +06:00
94358bf61c don't convert date to local date 2023-07-23 07:46:19 +14:00
ce50df61a5 Merge pull request #1395 from AmruthPillai/i18n_main
New Crowdin updates
2023-07-21 22:14:17 +02:00
f18da54dfa Merge branch 'main' into i18n_main 2023-07-21 22:14:11 +02:00
14c5e36fae Merge pull request #1396 from Jubair70/Jubair70/fixes-date-selection
Fixed date selection by selecting month after year
2023-07-21 22:13:06 +02:00
1483f9b4f2 Merge branch 'main' into Jubair70/fixes-date-selection 2023-07-21 15:04:53 +06:00
f7d8e4ebb4 slots removed 2023-07-21 15:03:58 +06:00
7c42d6e607 New translations modals.json (Portuguese, Brazilian) 2023-07-20 23:34:56 +02:00
08dea8ad8b New translations landing.json (Portuguese, Brazilian) 2023-07-20 23:34:41 +02:00
950d7ea4e7 New translations common.json (Portuguese, Brazilian) 2023-07-20 23:34:15 +02:00
ebc12042a9 New translations builder.json (Nepali) 2023-07-20 23:34:05 +02:00
d8168d2a9d New translations builder.json (Amharic) 2023-07-20 23:34:04 +02:00
7cfda3c83d New translations builder.json (Odia) 2023-07-20 23:34:03 +02:00
8fcfbdd69d New translations builder.json (Kannada) 2023-07-20 23:34:03 +02:00
1eb52261f2 New translations builder.json (Malayalam) 2023-07-20 23:34:02 +02:00
88400b769d New translations builder.json (Hindi) 2023-07-20 23:34:01 +02:00
b6831fc532 New translations builder.json (Marathi) 2023-07-20 23:34:00 +02:00
b231b60b5a New translations builder.json (Tamil) 2023-07-20 23:33:59 +02:00
2679c9ebc2 New translations builder.json (Khmer) 2023-07-20 23:33:58 +02:00
278253b809 New translations builder.json (Persian) 2023-07-20 23:33:57 +02:00
8a933de0bd New translations builder.json (Indonesian) 2023-07-20 23:33:57 +02:00
704cba06f4 New translations builder.json (Portuguese, Brazilian) 2023-07-20 23:33:56 +02:00
b946098bd0 New translations builder.json (Vietnamese) 2023-07-20 23:33:55 +02:00
f7b95f7679 New translations builder.json (Ukrainian) 2023-07-20 23:33:54 +02:00
e38967874e New translations builder.json (Turkish) 2023-07-20 23:33:53 +02:00
8368c4e183 New translations builder.json (Serbian (Cyrillic)) 2023-07-20 23:33:52 +02:00
951f14ef69 New translations builder.json (Russian) 2023-07-20 23:33:51 +02:00
4a75be95ef New translations builder.json (Portuguese) 2023-07-20 23:33:51 +02:00
1125557fbc New translations builder.json (Polish) 2023-07-20 23:33:50 +02:00
db63138307 New translations builder.json (Korean) 2023-07-20 23:33:48 +02:00
a52feac93b New translations builder.json (Italian) 2023-07-20 23:33:47 +02:00
ad7b6ad2c6 New translations builder.json (Hungarian) 2023-07-20 23:33:46 +02:00
33e3850bb7 New translations builder.json (Hebrew) 2023-07-20 23:33:45 +02:00
c29605dbd0 New translations builder.json (Finnish) 2023-07-20 23:33:44 +02:00
14b2ba4f73 New translations builder.json (Greek) 2023-07-20 23:33:43 +02:00
8868684125 New translations builder.json (Danish) 2023-07-20 23:33:39 +02:00
c1ceb0cd50 New translations builder.json (Czech) 2023-07-20 23:33:38 +02:00
1105f672a5 New translations builder.json (Catalan) 2023-07-20 23:33:37 +02:00
67cc49c068 New translations builder.json (Bulgarian) 2023-07-20 23:33:36 +02:00
505406508b New translations builder.json (Arabic) 2023-07-20 23:33:35 +02:00
bfd37951df New translations builder.json (Spanish) 2023-07-20 23:33:34 +02:00
339cae05f1 New translations builder.json (French) 2023-07-20 23:33:34 +02:00
48069c10a4 New translations builder.json (Romanian) 2023-07-20 23:33:33 +02:00
51317b2901 New translations builder.json (Japanese) 2023-07-20 22:32:27 +02:00
e5ce53b2aa Merge pull request #1399 from thomasmazon/thomas-improve-pt-br-translation
Thomas: fixing some Portuguese Brazilian labels
2023-07-20 22:32:00 +02:00
2bc7c93174 Thomas: fixing some Portuguese Brazilian labels 2023-07-20 11:56:54 -03:00
1d97f01942 Jubair70:fix/date-selection 2023-07-19 17:58:13 +06:00
5ad517f1d3 Jubair70:fix/date-selection 2023-07-19 17:53:23 +06:00
8088c70038 New translations builder.json (Chinese Simplified) 2023-07-19 13:52:09 +02:00
e36df82ba9 Merge pull request #1393 from AmruthPillai/dependabot/docker/server/playwright-v1.36.1-focal
Bump playwright from v1.35.1-focal to v1.36.1-focal in /server
2023-07-19 08:45:18 +02:00
de513a12da Merge pull request #1392 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.9.1
Bump docker/setup-buildx-action from 2.9.0 to 2.9.1
2023-07-19 08:45:11 +02:00
06f1a813ce Merge pull request #1387 from AmruthPillai/i18n_main
New Crowdin updates
2023-07-19 08:45:01 +02:00
1de9195f20 Merge branch 'main' into i18n_main 2023-07-19 08:44:54 +02:00
eaa21ead3e Update build-deploy.yml 2023-07-19 08:44:47 +02:00
3ea4a9b000 Bump playwright from v1.35.1-focal to v1.36.1-focal in /server
Bumps playwright from v1.35.1-focal to v1.36.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 02:36:05 +00:00
f0484c1c28 Bump docker/setup-buildx-action from 2.9.0 to 2.9.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.9.0 to 2.9.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.9.0...v2.9.1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 02:11:08 +00:00
7ebda09a5f New translations builder.json (German) 2023-07-14 22:35:05 +02:00
161ca0ee28 run prettier formatting on all files 2023-07-13 08:54:37 +02:00
984078db76 parallelize ci workflow 2023-07-12 16:26:07 +02:00
fbc0ae8918 fix use of dev dependency 2023-07-12 16:21:46 +02:00
3e93656f1f update issue templates 2023-07-12 16:02:16 +02:00
01bf17d7c8 Update README.md 2023-07-12 16:01:09 +02:00
651013fcf2 Merge pull request #1381 from AmruthPillai/fix/issue-with-private-resumes
fix(client): 🐛 do not allow private resumes to be viewable or downloadable through the link
2023-07-12 15:59:57 +02:00
1c2d796c50 fix(client): 🐛 do not allow private resumes to be viewable or downloadable through the link 2023-07-12 15:59:22 +02:00
5ef4bfcb6b Merge pull request #1379 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.9.0
Bump docker/setup-buildx-action from 2.8.0 to 2.9.0
2023-07-12 14:47:30 +02:00
a305b6419e Merge pull request #1378 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.9.0
Bump org.jetbrains.kotlin.android from 1.8.22 to 1.9.0 in /app
2023-07-12 14:47:22 +02:00
dcfdff2abe Bump docker/setup-buildx-action from 2.8.0 to 2.9.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.8.0...v2.9.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 03:00:37 +00:00
de77a6039a Bump org.jetbrains.kotlin.android from 1.8.22 to 1.9.0 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.22 to 1.9.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.22...v1.9.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 02:23:11 +00:00
e44eab55c3 Merge pull request #1376 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.8.0
Bump docker/setup-buildx-action from 2.7.0 to 2.8.0
2023-07-04 13:49:24 +02:00
c73ad9a627 Bump docker/setup-buildx-action from 2.7.0 to 2.8.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.7.0...v2.8.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 02:45:58 +00:00
be3d4a4f7c Merge pull request #1374 from AmruthPillai/i18n_main
New Crowdin updates
2023-07-02 08:01:43 +02:00
c86792901b New translations builder.json (Swedish) 2023-06-29 15:56:08 +02:00
a2645a10f0 Merge pull request #1369 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.7.0
Bump docker/setup-buildx-action from 2.6.0 to 2.7.0
2023-06-22 16:13:22 +02:00
772d8a0d41 Merge pull request #1368 from AmruthPillai/dependabot/github_actions/docker/build-push-action-4.1.1
Bump docker/build-push-action from 4.1.0 to 4.1.1
2023-06-22 16:13:14 +02:00
57348c13b2 Merge pull request #1367 from AmruthPillai/dependabot/github_actions/docker/metadata-action-4.6.0
Bump docker/metadata-action from 4.5.0 to 4.6.0
2023-06-22 16:13:03 +02:00
ffb92a967e Merge pull request #1366 from AmruthPillai/dependabot/docker/server/playwright-v1.35.1-focal
Bump playwright from v1.35.0-focal to v1.35.1-focal in /server
2023-06-22 16:10:59 +02:00
ed933f0452 Bump docker/setup-buildx-action from 2.6.0 to 2.7.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.6.0...v2.7.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:58:00 +00:00
26e67fe457 Bump docker/build-push-action from 4.1.0 to 4.1.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:57:55 +00:00
4507d2d032 Bump docker/metadata-action from 4.5.0 to 4.6.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v4.5.0...v4.6.0)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:57:50 +00:00
97b43d2fc9 Bump playwright from v1.35.0-focal to v1.35.1-focal in /server
Bumps playwright from v1.35.0-focal to v1.35.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:57:47 +00:00
88916a54d3 Merge pull request #1362 from AmruthPillai/i18n_main
New Crowdin updates
2023-06-15 10:04:54 +02:00
3aa57ebce8 Merge pull request #1358 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.22
Bump org.jetbrains.kotlin.android from 1.8.21 to 1.8.22 in /app
2023-06-15 10:04:48 +02:00
623d300da3 Merge pull request #1357 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.3
Bump actions/checkout from 3.5.2 to 3.5.3
2023-06-15 10:04:40 +02:00
10d7562e7a Merge pull request #1356 from AmruthPillai/dependabot/docker/client/node-20-alpine
Bump node from 18-alpine to 20-alpine in /client
2023-06-15 10:04:33 +02:00
807e747018 Merge pull request #1355 from AmruthPillai/dependabot/github_actions/docker/build-push-action-4.1.0
Bump docker/build-push-action from 4.0.0 to 4.1.0
2023-06-15 10:04:26 +02:00
1301cdce12 Merge pull request #1354 from AmruthPillai/dependabot/docker/server/playwright-v1.35.0-focal
Bump playwright from v1.34.3-focal to v1.35.0-focal in /server
2023-06-15 10:04:17 +02:00
c5fcbf5982 New translations common.json (Dutch) 2023-06-14 17:29:51 +02:00
a9daaeba55 New translations builder.json (Dutch) 2023-06-14 17:29:49 +02:00
dc33c35433 Bump org.jetbrains.kotlin.android from 1.8.21 to 1.8.22 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.21 to 1.8.22.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.8.22/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.21...v1.8.22)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 03:00:24 +00:00
189605484a Bump actions/checkout from 3.5.2 to 3.5.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.2...v3.5.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:58:29 +00:00
bb3e93d976 Bump node from 18-alpine to 20-alpine in /client
Bumps node from 18-alpine to 20-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:58:18 +00:00
44d692aad1 Bump docker/build-push-action from 4.0.0 to 4.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:58:18 +00:00
bb0ca824b8 Bump playwright from v1.34.3-focal to v1.35.0-focal in /server
Bumps playwright from v1.34.3-focal to v1.35.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:57:59 +00:00
a0b8de4ab4 Merge pull request #1347 from AlexTu2/main
add Discord icon
2023-06-09 09:06:47 +02:00
f73a80c684 add Discord icon 2023-06-08 22:52:38 -04:00
0eddb7d5a3 remove old ci action workflows 2023-06-08 16:28:08 +02:00
6ff36cb1e4 fix build-deploy script 2023-06-08 16:27:14 +02:00
c513d68813 Add push: true to Build and Deploy Script 2023-06-08 15:25:16 +02:00
8d3f4e031c update dependencies, rework on github actions ci script 2023-06-08 15:05:15 +02:00
3aa8778a67 Update README.md 2023-06-08 13:51:31 +02:00
d4a3cec3c2 create new github actions workflow "Build and Push Multi-Arch Docker Images using Manifest" 2023-06-08 13:48:35 +02:00
96eca65ed0 add back health module to server 2023-06-07 20:45:21 +02:00
30fd283898 use matrix to build amd64/arm64 images 2023-06-07 20:25:12 +02:00
726ea7312b add arm to qemu platform 2023-06-07 20:10:25 +02:00
f3a7180d4b change run script for docker file 2023-06-07 19:52:48 +02:00
0173ce32c3 Implement Turborepo to include Build Caching in CI/CD 2023-06-07 19:50:48 +02:00
d4b6c16bf9 updating dependencies, fixing server reloads 2023-06-07 18:39:14 +02:00
c571f201d3 update version 2023-06-07 17:18:33 +02:00
e4ecf50ed4 add missing backslash 2023-06-07 17:18:18 +02:00
5ee99cfdab attempt to fix internal server error 2023-06-07 12:06:04 +02:00
72e610b50d Merge pull request #1323 from AmruthPillai/i18n_main
New Crowdin updates
2023-05-30 16:53:03 +02:00
ba34787333 Merge pull request #1326 from AmruthPillai/dependabot/docker/server/playwright-v1.34.3-focal
Bump playwright from v1.34.0-focal to v1.34.3-focal in /server
2023-05-30 16:52:54 +02:00
e11b0e6224 Bump playwright from v1.34.0-focal to v1.34.3-focal in /server
Bumps playwright from v1.34.0-focal to v1.34.3-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 02:58:15 +00:00
c78ee18e05 New translations common.json (Norwegian) 2023-05-26 14:15:52 +02:00
5f5b484243 New translations builder.json (Norwegian) 2023-05-26 14:15:50 +02:00
bcc451a6a1 Merge pull request #1320 from AmruthPillai/dependabot/docker/server/playwright-v1.34.0-focal
Bump playwright from v1.32.3-focal to v1.34.0-focal in /server
2023-05-23 21:09:04 +02:00
55a7f6a556 Merge pull request #1315 from dev-abir/main
add icons
2023-05-23 21:08:55 +02:00
e9b6265c60 Merge pull request #1304 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.21
Bump org.jetbrains.kotlin.android from 1.8.20 to 1.8.21 in /app
2023-05-23 21:08:40 +02:00
2e2f3271c9 Bump playwright from v1.32.3-focal to v1.34.0-focal in /server
Bumps playwright from v1.32.3-focal to v1.34.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 02:58:19 +00:00
fa3e92d643 Merge pull request #1314 from jobayer12/issue-1309
Rename the Work Experience label.
2023-05-17 10:33:51 +02:00
1f9b52eda6 Added the experience section on the leftSidebar. 2023-05-13 17:58:27 +06:00
7074b6fc76 add icon packs according to #834 2023-05-09 22:10:31 +05:30
b4c4fb94f7 Renamed the Work Experience label. 2023-05-08 10:44:57 +06:00
22bdb64fa9 Added the experience section on the leftSidebar. 2023-05-08 10:42:27 +06:00
af02158d05 Bump org.jetbrains.kotlin.android from 1.8.20 to 1.8.21 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.20 to 1.8.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.20...v1.8.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 03:03:01 +00:00
6a8db92fc4 fix bugs 2023-04-21 01:13:32 +02:00
6f219ef17e bump up version to 3.7.2 2023-04-20 23:02:14 +02:00
667e51abdc implement larger pool size for db 2023-04-20 22:52:24 +02:00
7b98277c32 Merge pull request #1294 from AmruthPillai/dependabot/docker/server/playwright-v1.32.3-focal
Bump playwright from v1.32.1-focal to v1.32.3-focal in /server
2023-04-20 22:34:03 +02:00
77ed7ed8be Merge pull request #1293 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.2
Bump actions/checkout from 3.5.0 to 3.5.2
2023-04-20 22:33:56 +02:00
ce584d9326 Merge pull request #1289 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-20 22:33:48 +02:00
5685352375 Merge pull request #1286 from AmruthPillai/dependabot/github_actions/martinbeentjes/npm-get-version-action-1.3.1
Bump martinbeentjes/npm-get-version-action from 1.2.3 to 1.3.1
2023-04-20 22:33:38 +02:00
036b2917a6 update dependencies, attempt to fix server restart issue 2023-04-20 22:33:11 +02:00
e972320722 Bump playwright from v1.32.1-focal to v1.32.3-focal in /server
Bumps playwright from v1.32.1-focal to v1.32.3-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 02:59:32 +00:00
4ac1e9db35 Bump actions/checkout from 3.5.0 to 3.5.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.0 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.0...v3.5.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 02:58:06 +00:00
9fe4403b40 New translations modals.json (Nepali) 2023-04-11 08:37:33 +02:00
4f4084ab45 New translations modals.json (Amharic) 2023-04-11 08:37:32 +02:00
72227dc9ab New translations modals.json (Odia) 2023-04-11 08:37:31 +02:00
d44795a421 New translations modals.json (Kannada) 2023-04-11 08:37:30 +02:00
e9584144e4 New translations modals.json (Malayalam) 2023-04-11 08:37:30 +02:00
bbedfa3b75 New translations modals.json (Hindi) 2023-04-11 08:37:29 +02:00
03f7d74096 New translations modals.json (Marathi) 2023-04-11 08:37:28 +02:00
a62693d611 New translations modals.json (Bengali) 2023-04-11 08:37:27 +02:00
421f195e1e New translations modals.json (Tamil) 2023-04-11 08:37:26 +02:00
b22dff523f New translations modals.json (Khmer) 2023-04-11 08:37:25 +02:00
58d0c6e315 New translations modals.json (Persian) 2023-04-11 08:37:24 +02:00
36178cac22 New translations landing.json (Nepali) 2023-04-11 08:37:24 +02:00
376786fa25 New translations landing.json (Amharic) 2023-04-11 08:37:23 +02:00
efceda1c55 New translations landing.json (Odia) 2023-04-11 08:37:22 +02:00
047e317c51 New translations landing.json (Kannada) 2023-04-11 08:37:21 +02:00
36ad63adb9 New translations landing.json (Malayalam) 2023-04-11 08:37:20 +02:00
45c88caf58 New translations landing.json (Hindi) 2023-04-11 08:37:20 +02:00
ca11a9217a New translations landing.json (Marathi) 2023-04-11 08:37:19 +02:00
fd6fbbba77 New translations landing.json (Bengali) 2023-04-11 08:37:18 +02:00
e2fb83bda9 New translations landing.json (Tamil) 2023-04-11 08:37:17 +02:00
40567e8f61 New translations landing.json (Khmer) 2023-04-11 08:37:16 +02:00
64c899b159 New translations modals.json (Indonesian) 2023-04-11 08:37:12 +02:00
b267cc4097 New translations modals.json (Vietnamese) 2023-04-11 08:37:11 +02:00
f4657b6592 New translations modals.json (Chinese Simplified) 2023-04-11 08:37:10 +02:00
6a2f512638 New translations modals.json (Ukrainian) 2023-04-11 08:37:10 +02:00
499005c21f New translations modals.json (Turkish) 2023-04-11 08:37:09 +02:00
0e18d3fc48 New translations modals.json (Serbian (Cyrillic)) 2023-04-11 08:37:08 +02:00
3b831c4eb4 New translations modals.json (Russian) 2023-04-11 08:37:07 +02:00
40564944ef New translations modals.json (Polish) 2023-04-11 08:37:06 +02:00
fdbb6d2e5b New translations modals.json (Norwegian) 2023-04-11 08:37:06 +02:00
398cd63082 New translations modals.json (Dutch) 2023-04-11 08:37:05 +02:00
efd4af14e5 New translations modals.json (Japanese) 2023-04-11 08:37:03 +02:00
889697fc31 New translations modals.json (Hungarian) 2023-04-11 08:37:02 +02:00
3aedf6618d New translations modals.json (Finnish) 2023-04-11 08:37:01 +02:00
abf42e13af New translations modals.json (Greek) 2023-04-11 08:37:00 +02:00
40bcbebadd New translations modals.json (Danish) 2023-04-11 08:36:59 +02:00
364f2e6d49 New translations modals.json (Czech) 2023-04-11 08:36:58 +02:00
7e5dfd75f9 New translations modals.json (Catalan) 2023-04-11 08:36:57 +02:00
b94d10c614 New translations modals.json (Bulgarian) 2023-04-11 08:36:57 +02:00
8c40b417ec New translations modals.json (Arabic) 2023-04-11 08:36:56 +02:00
1f17dfe6ea New translations landing.json (Indonesian) 2023-04-11 08:36:55 +02:00
be6ea1a224 New translations landing.json (Vietnamese) 2023-04-11 08:36:54 +02:00
583e9effae New translations builder.json (Nepali) 2023-04-11 08:36:53 +02:00
619b2757c8 New translations builder.json (Amharic) 2023-04-11 08:36:52 +02:00
9e27eee029 New translations builder.json (Odia) 2023-04-11 08:36:51 +02:00
c2d3c611e1 New translations builder.json (Kannada) 2023-04-11 08:36:50 +02:00
735f589e54 New translations builder.json (Malayalam) 2023-04-11 08:36:49 +02:00
1e3d6fbb77 New translations builder.json (Hindi) 2023-04-11 08:36:48 +02:00
3995e7159a New translations builder.json (Marathi) 2023-04-11 08:36:47 +02:00
6662acf0b0 New translations builder.json (Bengali) 2023-04-11 08:36:47 +02:00
feb8abca95 New translations builder.json (Tamil) 2023-04-11 08:36:46 +02:00
75c83bd91d New translations builder.json (Khmer) 2023-04-11 08:36:45 +02:00
f6d5897ed3 New translations landing.json (Chinese Simplified) 2023-04-11 08:36:44 +02:00
ed356763a1 New translations landing.json (Ukrainian) 2023-04-11 08:36:43 +02:00
4847246d84 New translations landing.json (Turkish) 2023-04-11 08:36:42 +02:00
a0ae6cb77e New translations landing.json (Serbian (Cyrillic)) 2023-04-11 08:36:42 +02:00
2aa2550be0 New translations landing.json (Russian) 2023-04-11 08:36:41 +02:00
df39913d49 New translations landing.json (Polish) 2023-04-11 08:36:40 +02:00
2225505d48 New translations landing.json (Norwegian) 2023-04-11 08:36:39 +02:00
afe20e61ee New translations landing.json (Dutch) 2023-04-11 08:36:38 +02:00
794e9c6511 New translations landing.json (Japanese) 2023-04-11 08:36:37 +02:00
e7e423bf29 New translations landing.json (Hungarian) 2023-04-11 08:36:35 +02:00
2173297207 New translations landing.json (Finnish) 2023-04-11 08:36:34 +02:00
b091cfa474 New translations landing.json (Greek) 2023-04-11 08:36:33 +02:00
057bb3a414 New translations landing.json (Czech) 2023-04-11 08:36:33 +02:00
c1442c9acc New translations landing.json (Catalan) 2023-04-11 08:36:32 +02:00
977f1beafd New translations landing.json (Bulgarian) 2023-04-11 08:36:31 +02:00
39ee710e97 New translations landing.json (Arabic) 2023-04-11 08:36:30 +02:00
1d1841c8db New translations builder.json (Indonesian) 2023-04-11 08:36:29 +02:00
3e44774ed4 New translations builder.json (Vietnamese) 2023-04-11 08:36:28 +02:00
9e2fa01896 New translations builder.json (Chinese Simplified) 2023-04-11 08:36:28 +02:00
7811f9840c New translations builder.json (Ukrainian) 2023-04-11 08:36:27 +02:00
34425c6200 New translations builder.json (Turkish) 2023-04-11 08:36:26 +02:00
46f9fc549a New translations builder.json (Serbian (Cyrillic)) 2023-04-11 08:36:25 +02:00
237abf359b New translations builder.json (Russian) 2023-04-11 08:36:24 +02:00
c5e8739009 New translations builder.json (Polish) 2023-04-11 08:36:23 +02:00
0ea8040977 New translations builder.json (Norwegian) 2023-04-11 08:36:22 +02:00
1f10e8efe3 New translations builder.json (Dutch) 2023-04-11 08:36:21 +02:00
8c2688670e New translations builder.json (Japanese) 2023-04-11 08:36:20 +02:00
bc5d49b568 New translations builder.json (Hungarian) 2023-04-11 08:36:19 +02:00
27ea84e720 New translations builder.json (Finnish) 2023-04-11 08:36:17 +02:00
0becb66bfd New translations builder.json (Greek) 2023-04-11 08:36:16 +02:00
11f88492e9 New translations builder.json (Czech) 2023-04-11 08:36:15 +02:00
ae3e01466f New translations builder.json (Catalan) 2023-04-11 08:36:14 +02:00
5d04dd8a83 New translations builder.json (Bulgarian) 2023-04-11 08:36:13 +02:00
52c15a8151 New translations builder.json (Arabic) 2023-04-11 08:36:12 +02:00
f6104e7051 Bump martinbeentjes/npm-get-version-action from 1.2.3 to 1.3.1
Bumps [martinbeentjes/npm-get-version-action](https://github.com/martinbeentjes/npm-get-version-action) from 1.2.3 to 1.3.1.
- [Release notes](https://github.com/martinbeentjes/npm-get-version-action/releases)
- [Commits](https://github.com/martinbeentjes/npm-get-version-action/compare/v1.2.3...v1.3.1)

---
updated-dependencies:
- dependency-name: martinbeentjes/npm-get-version-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 03:09:34 +00:00
ed710f6fe5 hotfix for docker CMD script 2023-04-06 15:41:00 +02:00
7e6e239d7f Merge pull request #1279 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-06 15:04:42 +02:00
b4381a22f3 remove VERSION env dependency from server 2023-04-06 15:03:53 +02:00
ba6ca4d220 update build commands for pnpm on Dockerfile 2023-04-06 14:42:36 +02:00
5486906b05 use corepack to install pnpm, over regular method 2023-04-06 13:08:51 +02:00
7348b295cb upgrade gradle version from 7.4.0 to 7.4.2 2023-04-06 12:40:57 +02:00
025762fdf6 update Gradle distributions on Android App 2023-04-06 11:58:00 +02:00
96411cdb90 remove turbo from the workspace 2023-04-06 11:50:28 +02:00
835f453384 New translations dashboard.json (Italian) 2023-04-05 22:56:45 +02:00
cc475ae1e9 New translations common.json (Italian) 2023-04-05 22:56:44 +02:00
a5249ec646 New translations modals.json (Italian) 2023-04-05 22:56:42 +02:00
d0e3090421 New translations landing.json (Italian) 2023-04-05 22:56:39 +02:00
14f68c8937 New translations builder.json (Italian) 2023-04-05 22:56:37 +02:00
9c0c6076b3 update pnpm in dockerfile 2023-04-05 09:25:28 +02:00
36bf729161 update dependencies, fix typescript issues, optimize lodash imports 2023-04-05 09:06:49 +02:00
3a430ad98c bump up version to 3.6.19 2023-04-04 23:47:28 +02:00
90a8610dd7 update dependencies 2023-04-04 23:47:02 +02:00
d62ddab140 Merge pull request #1276 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.20
Bump org.jetbrains.kotlin.android from 1.8.10 to 1.8.20 in /app
2023-04-04 12:53:30 +02:00
ca0186bb67 Merge pull request #1268 from AmruthPillai/dependabot/docker/server/playwright-v1.32.1-focal
Bump playwright from v1.30.0-focal to v1.32.1-focal in /server
2023-04-04 12:44:15 +02:00
88ac8389ea Merge pull request #1267 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.0
Bump actions/checkout from 3.3.0 to 3.5.0
2023-04-04 11:38:14 +02:00
2f3864fff2 Merge pull request #1254 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.5.0
Bump docker/setup-buildx-action from 2.4.0 to 2.5.0
2023-04-04 11:38:03 +02:00
7878e52cc4 Merge pull request #1227 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-04 11:37:51 +02:00
08b1967a4e Bump org.jetbrains.kotlin.android from 1.8.10 to 1.8.20 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.10 to 1.8.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/commits)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 03:02:02 +00:00
b870ca8297 New translations dashboard.json (Korean) 2023-04-01 21:34:54 +02:00
1507c54671 New translations common.json (Korean) 2023-04-01 21:34:53 +02:00
0984ca4daf New translations modals.json (Korean) 2023-04-01 21:34:51 +02:00
438798f8de New translations landing.json (Korean) 2023-04-01 21:34:49 +02:00
27aadb8948 New translations builder.json (Korean) 2023-04-01 21:34:47 +02:00
244a4118cf New translations common.json (Korean) 2023-04-01 20:24:02 +02:00
cde320ce46 New translations dashboard.json (Hebrew) 2023-03-30 11:44:14 +02:00
4772df7618 New translations modals.json (Hebrew) 2023-03-30 11:44:11 +02:00
ecb95b35f3 New translations landing.json (Hebrew) 2023-03-30 11:44:07 +02:00
24b09af563 New translations builder.json (Hebrew) 2023-03-30 11:44:03 +02:00
9471fb4169 New translations dashboard.json (Hebrew) 2023-03-30 10:38:01 +02:00
2f296d6f08 New translations common.json (Hebrew) 2023-03-30 10:38:00 +02:00
cd3d3caa15 New translations modals.json (Hebrew) 2023-03-30 10:37:57 +02:00
440eefe46e Bump playwright from v1.30.0-focal to v1.32.1-focal in /server
Bumps playwright from v1.30.0-focal to v1.32.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 02:59:00 +00:00
5787e2badb Bump actions/checkout from 3.3.0 to 3.5.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.5.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.3.0...v3.5.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 02:58:28 +00:00
c235e5ab16 Bump docker/setup-buildx-action from 2.4.0 to 2.5.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.4.0...v2.5.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 02:59:14 +00:00
f584c70f27 New translations landing.json (Danish) 2023-02-17 04:15:04 +05:30
3aa0279519 New translations builder.json (Danish) 2023-02-17 04:15:00 +05:30
6830aec2f9 New translations landing.json (Danish) 2023-02-17 01:27:01 +05:30
9a3d7af325 New translations common.json (French) 2023-02-12 19:25:54 +05:30
52f7e8557f New translations modals.json (French) 2023-02-12 19:25:50 +05:30
12c17d1c7c New translations landing.json (French) 2023-02-12 19:25:47 +05:30
67918187a1 New translations builder.json (French) 2023-02-12 19:25:46 +05:30
dcbc0c2b45 New translations dashboard.json (French) 2023-02-12 16:57:35 +05:30
26b6a741c2 New translations builder.json (French) 2023-02-12 16:57:29 +05:30
d7064129e8 Merge pull request #1225 from raphaelcangucu/feature.pt-BR
Translation fixes on LeftSideBar
2023-02-10 08:33:56 +05:30
279dd36a13 Fix translations for other languages 2023-02-08 19:19:48 -03:00
49e47b28de fix date and start to translate to pt-br 2023-02-08 15:43:23 -03:00
a782343e0a Merge pull request #1218 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.10
Bump org.jetbrains.kotlin.android from 1.8.0 to 1.8.10 in /app
2023-02-08 02:03:17 +05:30
1e7821a46d Merge pull request #1217 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.4.0
Bump docker/setup-buildx-action from 2.3.0 to 2.4.0
2023-02-08 02:03:08 +05:30
f7bea5a218 Merge pull request #1216 from AmruthPillai/dependabot/github_actions/docker/build-push-action-4.0.0
Bump docker/build-push-action from 3.3.0 to 4.0.0
2023-02-08 02:02:57 +05:30
05fa4f3192 Merge pull request #1190 from AmruthPillai/i18n_main
New Crowdin updates
2023-02-08 02:02:46 +05:30
ed357f0ebc Merge pull request #1215 from C4illin/main
Add ISO 8601 option
2023-02-08 02:02:36 +05:30
1774832a58 Bump org.jetbrains.kotlin.android from 1.8.0 to 1.8.10 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.0 to 1.8.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.8.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.0...v1.8.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:25:09 +00:00
2837befd52 Bump docker/setup-buildx-action from 2.3.0 to 2.4.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.3.0...v2.4.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:20:21 +00:00
38d866c0c2 Bump docker/build-push-action from 3.3.0 to 4.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.3.0...v4.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:20:16 +00:00
87c7acf4f1 New translations modals.json (Swedish) 2023-02-06 01:53:14 +01:00
1bd68118ce New translations landing.json (Swedish) 2023-02-06 01:53:11 +01:00
5c34b28c80 New translations builder.json (Swedish) 2023-02-06 01:53:08 +01:00
c550183720 Add ISO 8601 option 2023-02-05 23:28:21 +01:00
3605579b1b Merge pull request #1206 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.3.0
Bump docker/setup-buildx-action from 2.2.1 to 2.3.0
2023-01-30 08:40:37 +01:00
fa2e28688f Merge pull request #1207 from AmruthPillai/dependabot/docker/server/playwright-v1.30.0-focal
Bump playwright from v1.29.2-focal to v1.30.0-focal in /server
2023-01-30 08:40:27 +01:00
20f1031e28 Bump playwright from v1.29.2-focal to v1.30.0-focal in /server
Bumps playwright from v1.29.2-focal to v1.30.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 02:17:52 +00:00
292cb6d0ed Bump docker/setup-buildx-action from 2.2.1 to 2.3.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.2.1 to 2.3.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.2.1...v2.3.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 02:16:52 +00:00
45f2dc1cfc Merge pull request #1195 from busches/castform-masthead-spacing
fix: extra whitespace in Castform header
2023-01-23 13:10:56 +01:00
e319dd3e3d fix: extra whitespace in Castform header
Using the Castform template without a summary, still has extra whitespace for the summary. This commit fixes the extra whitespace to not appear when no summary is present.
2023-01-22 17:48:27 -06:00
9678f7a6e5 New translations modals.json (Portuguese) 2023-01-22 22:58:07 +01:00
0cca4e21fb New translations landing.json (Portuguese) 2023-01-22 22:58:04 +01:00
f6758f191d New translations builder.json (Portuguese) 2023-01-22 22:58:01 +01:00
983662f877 New translations common.json (German) 2023-01-21 00:50:00 +01:00
c7fc28a5c5 New translations modals.json (German) 2023-01-21 00:49:57 +01:00
1f7c33e805 New translations common.json (German) 2023-01-20 23:41:22 +01:00
437cc331a8 New translations landing.json (German) 2023-01-20 23:41:15 +01:00
aef51375b8 New translations builder.json (German) 2023-01-20 23:41:14 +01:00
bdd65968e5 New translations dashboard.json (Spanish) 2023-01-20 19:04:27 +01:00
061a789c18 New translations modals.json (Spanish) 2023-01-20 19:04:23 +01:00
68507d0501 New translations builder.json (Spanish) 2023-01-20 19:04:19 +01:00
1e28c5adfa New translations modals.json (Romanian) 2023-01-20 10:41:28 +01:00
3b09550ebd New translations landing.json (Romanian) 2023-01-20 10:41:25 +01:00
16aef9cbec New translations builder.json (Romanian) 2023-01-20 10:41:22 +01:00
b24da90ba7 bump up version to 3.6.18 2023-01-19 07:55:12 +01:00
2aa7dbd3ad Merge pull request #1188 from AmruthPillai/feat/implement-self-serve-account-deletion
[Feature] Implement Self-Serve Account Deletion
2023-01-19 07:53:49 +01:00
9f8f2c4b8b remove console.log 2023-01-19 07:52:59 +01:00
5331ecccc1 i18n-ize the user profile modal 2023-01-19 07:51:43 +01:00
f2ec86940c Merge branch 'main' into feat/implement-self-serve-account-deletion 2023-01-19 07:34:11 +01:00
cd74e707ba update dependencies 2023-01-19 07:33:15 +01:00
ff101dbfac [Feature] Implement Self-Serve Account Deletion 2023-01-19 00:11:15 +01:00
5024c19f87 fix error messages not displaying toasts sometimes, add axios error interceptors 2023-01-18 21:36:05 +01:00
c9850b5815 Merge pull request #1183 from AmruthPillai/i18n_main
New Crowdin updates
2023-01-18 20:37:54 +01:00
6fe4e7d7e1 Merge pull request #1184 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.3.0
Bump docker/build-push-action from 3.2.0 to 3.3.0
2023-01-16 10:53:29 +01:00
a5b8b91e82 Bump docker/build-push-action from 3.2.0 to 3.3.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 02:33:23 +00:00
cc7095adc3 New translations landing.json (Spanish) 2023-01-16 01:53:40 +01:00
e2703f55aa New translations builder.json (Spanish) 2023-01-16 01:53:37 +01:00
8c5849c988 Merge pull request #1172 from AmruthPillai/dependabot/github_actions/actions/checkout-3.3.0
Bump actions/checkout from 3.2.0 to 3.3.0
2023-01-09 10:02:35 +01:00
5322ab2420 Merge pull request #1173 from AmruthPillai/dependabot/docker/server/playwright-v1.29.2-focal
Bump playwright from v1.29.1-focal to v1.29.2-focal in /server
2023-01-09 10:02:27 +01:00
b84e6bcfb1 Bump playwright from v1.29.1-focal to v1.29.2-focal in /server
Bumps playwright from v1.29.1-focal to v1.29.2-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 02:06:20 +00:00
a4ab0174c7 Bump actions/checkout from 3.2.0 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 02:05:40 +00:00
7e93b5a757 update dependencies 2023-01-04 22:15:13 +01:00
044820fa71 Update README.md 2023-01-04 16:05:30 +01:00
322178e8a4 Merge pull request #1165 from JadinHeaston/main
Fixing unconditional ```http://``` prefix.
2023-01-03 23:22:17 +01:00
6358fbad30 Adding check for ``addHttp()` to see if `mailto:` or `tel:`` is present.Signed-off-by: Jadin Heaston <jadin.heaston@como.gov> 2023-01-03 13:57:07 -06:00
d342c0a9af fix axios type issue 2023-01-03 17:17:35 +01:00
63084eebb4 feat(dependencies): ⬆️ update dependencies, fix date display issue, add more profile icons 2023-01-03 17:06:30 +01:00
3b4ea00db8 Merge pull request #1162 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.0
Bump org.jetbrains.kotlin.android from 1.7.22 to 1.8.0 in /app
2023-01-03 16:51:17 +01:00
c8f7bffe7e Merge pull request #1160 from coolswood/main
fix: Gengar two cols bug
2023-01-03 16:51:09 +01:00
3ff56f89d9 Merge pull request #1158 from AmruthPillai/i18n_main
New Crowdin updates
2023-01-03 16:50:48 +01:00
7fb9f27837 Bump org.jetbrains.kotlin.android from 1.7.22 to 1.8.0 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.22 to 1.8.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.22...v1.8.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 02:04:34 +00:00
c9685d4ce7 fix: Gengar two cols bug 2022-12-31 10:01:54 +02:00
4dc987e27d New translations landing.json (Persian) 2022-12-30 19:09:41 +01:00
f7af06ae9a New translations builder.json (Persian) 2022-12-30 18:12:15 +01:00
a5c337faa3 Merge pull request #1151 from AmruthPillai/dependabot/github_actions/digitalocean/action-doctl-2.3.0
Bump digitalocean/action-doctl from 2.2.0 to 2.3.0
2022-12-30 11:48:34 +01:00
fc4704f0a6 Merge pull request #1150 from AmruthPillai/dependabot/docker/server/playwright-v1.29.1-focal
Bump playwright from v1.29.0-focal to v1.29.1-focal in /server
2022-12-30 11:48:25 +01:00
d968334ada Merge pull request #1155 from coolswood/main
fix: overflow-y-auto
2022-12-29 21:37:29 +01:00
fea6d23178 fix: overflow-y-auto 2022-12-29 19:37:47 +02:00
3fefc95572 Bump digitalocean/action-doctl from 2.2.0 to 2.3.0
Bumps [digitalocean/action-doctl](https://github.com/digitalocean/action-doctl) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/digitalocean/action-doctl/releases)
- [Commits](https://github.com/digitalocean/action-doctl/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: digitalocean/action-doctl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-26 02:04:49 +00:00
b07e7d1213 Bump playwright from v1.29.0-focal to v1.29.1-focal in /server
Bumps playwright from v1.29.0-focal to v1.29.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-26 02:04:31 +00:00
d47b8bfb03 Merge pull request #1139 from AmruthPillai/dependabot/github_actions/actions/checkout-3.2.0
Bump actions/checkout from 3.1.0 to 3.2.0
2022-12-19 10:22:44 +01:00
5bf7fbdae1 Merge pull request #1140 from AmruthPillai/dependabot/docker/server/playwright-v1.29.0-focal
Bump playwright from v1.28.1-focal to v1.29.0-focal in /server
2022-12-19 10:22:34 +01:00
fca766b382 Bump playwright from v1.28.1-focal to v1.29.0-focal in /server
Bumps playwright from v1.28.1-focal to v1.29.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 02:06:27 +00:00
feadfb1b67 Bump actions/checkout from 3.1.0 to 3.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 02:06:19 +00:00
e69000f221 Merge pull request #1137 from AmruthPillai/feat/add-remark-gfm-math-plugins
feat(client):  add github flavored syntax and math equations to markdown support
2022-12-17 10:27:19 +01:00
6b4a54465a feat(client): add github flavored syntax and math equations to markdown support 2022-12-17 10:19:25 +01:00
878659999f Merge pull request #1135 from AmruthPillai/i18n_main
New Crowdin updates
2022-12-17 09:53:13 +01:00
1868c47e30 New translations common.json (Dutch) 2022-12-17 09:48:12 +01:00
51442efc23 New translations common.json (German) 2022-12-17 09:48:07 +01:00
556e962ec5 refactor(client): 📝 add link to subreddit 2022-12-16 22:56:23 +01:00
b5ce67f863 Update README.md 2022-12-16 18:06:46 +01:00
c3ce89dc3a Update README.md 2022-12-16 18:04:22 +01:00
e87930c758 bump version to 3.6.16 2022-12-16 17:59:58 +01:00
815a693e58 Merge pull request #1134 from AmruthPillai/feature/configure-gitpod
Configure Gitpod for easier development and self-hosting
2022-12-16 17:58:50 +01:00
8287fcae96 add gitpod to README.md 2022-12-16 17:58:38 +01:00
cd7fe6c404 Remove .env.gitpod 2022-12-16 15:58:22 +00:00
d47d5dd819 build and run project finally, in gitpod 2022-12-16 16:52:37 +01:00
1919d79e43 fix url host parsing 2022-12-16 15:50:43 +00:00
ab08cd9e34 add sync await/done 2022-12-16 16:46:26 +01:00
2522bdd0a2 add onOpen: ignore to postgres port 2022-12-16 16:42:02 +01:00
f9b6aefffe create .env generation script 2022-12-16 16:39:29 +01:00
2ba6658a0b add CORS to server, input appUrl 2022-12-16 15:04:08 +00:00
dbc46f27a3 add postgres port 2022-12-16 14:12:43 +00:00
f21e1caed1 trying this now 2022-12-16 15:09:43 +01:00
4ffe2a6330 add 2022-12-16 15:03:22 +01:00
1bc0438872 remove 2022-12-16 15:03:06 +01:00
57fb9fdaea add dockerfile support to gitpod.yml 2022-12-16 14:01:17 +00:00
58ce641f18 add postgres to gitpod 2022-12-16 13:56:08 +00:00
5f4e7802e4 Merge branch 'main' into feature/configure-gitpod 2022-12-16 13:44:46 +00:00
42d3109ae1 Merge pull request #1128 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.22
Bump org.jetbrains.kotlin.android from 1.7.21 to 1.7.22 in /app
2022-12-16 14:43:57 +01:00
f7ca7b97fa Merge pull request #1127 from AmruthPillai/dependabot/docker/server/playwright-v1.28.1-focal
Bump playwright from v1.28.0-focal to v1.28.1-focal in /server
2022-12-16 14:43:51 +01:00
f5d8a54134 Merge pull request #1130 from Jack-Kingdom/main
Fix: wait for networkidle event to ensure image load
2022-12-16 14:43:43 +01:00
eaec14dc62 initial gitpod configuration 2022-12-16 13:42:03 +00:00
c93b3264cd Bump playwright from v1.28.0-focal to v1.28.1-focal in /server
Bumps playwright from v1.28.0-focal to v1.28.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-16 13:34:56 +00:00
bf41aa9c6c feat(sentry): remove sentry integration 2022-12-16 14:34:15 +01:00
8af6bfd5ae Fix: wait for networkidle event to ensure image load 2022-12-10 02:55:38 +08:00
ab08c10874 Bump org.jetbrains.kotlin.android from 1.7.21 to 1.7.22 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.21 to 1.7.22.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.21...v1.7.22)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 02:08:23 +00:00
9af9a0284e set sentry user ID, if available and applicable 2022-12-03 00:15:08 +01:00
716a05032d one more attempt to fix sentry auth issue 2022-12-02 23:54:25 +01:00
43e43e7d76 one more attempt to fix sentry auth issue 2022-12-02 23:44:51 +01:00
c91af3668d attempt to fix sentry auth issue 2022-12-02 23:32:04 +01:00
52f41f0b3b bump version to v3.6.15 2022-12-02 23:22:54 +01:00
3b709d606b Merge pull request #1120 from AmruthPillai/feature/sentry-integration
[Feature] Sentry Integration (Optional for Self Hosted)
2022-12-02 23:21:59 +01:00
2e5fafac62 remove unnecessary envs 2022-12-02 23:21:00 +01:00
ea2aee2d25 add release version to sentry ci process 2022-12-02 23:16:48 +01:00
e36fbb5f64 Update .env.example 2022-12-02 22:13:07 +01:00
5221ef707b Merge branch 'main' into feature/sentry-integration 2022-12-02 22:10:58 +01:00
f0df806f01 remove link underline style 2022-12-02 22:10:08 +01:00
9d01d6a833 update version ot 3.6.14 2022-12-02 13:59:13 +01:00
1914ebb9ae fix links in PDF 2022-12-02 13:55:56 +01:00
686dba90c9 Merge pull request #1114 from tryallthethings/pdf-template-fix
Fix for links in PDFs, template fix
2022-12-02 13:41:37 +01:00
95dc3bf571 Merge pull request #1108 from tryallthethings/translation-fix
Translation fix
2022-12-02 13:37:35 +01:00
1c8fdbf848 Merge pull request #1107 from tryallthethings/main
fix: made some missing texts translatable
2022-12-02 13:37:25 +01:00
d8357c9959 Fix: Every other instance of invoked clsx hence adding it here as well. 2022-11-26 14:37:48 +01:00
90e994377b Fix: Adding quotation marks seems to fix #1112 2022-11-26 14:36:56 +01:00
82c6ee6d5d fix: Updated German translation. A lot of minor changes as well as rephrasing of whole sentences. This translation is now also 100% formal, instead of a mix of formal and informal. 2022-11-25 18:42:37 +01:00
7b615e73c3 fix: Changed German language description to formal 2022-11-25 18:42:00 +01:00
268e4a87fe Revert "fix: made some missing texts translatable"
This reverts commit deb4e0a0de.
2022-11-25 18:39:09 +01:00
73f8eb84c9 Revert "fix: Updated German translation. A lot of minor changes as well as rephrasing of whole sentences."
This reverts commit e0a42fd928.
2022-11-25 18:39:07 +01:00
a31ef89996 Revert "fix: Changed German language description to formal"
This reverts commit d6bca7ebab.
2022-11-25 18:38:55 +01:00
d6bca7ebab fix: Changed German language description to formal 2022-11-25 18:29:55 +01:00
e0a42fd928 fix: Updated German translation. A lot of minor changes as well as rephrasing of whole sentences. 2022-11-25 18:27:28 +01:00
deb4e0a0de fix: made some missing texts translatable
BREAKING CHANGE: locales without the new fields will display the field name
2022-11-25 18:22:29 +01:00
a687062866 Merge pull request #1105 from tryallthethings/patch-3
Update date.ts
2022-11-25 18:10:11 +01:00
700439c8a8 Update date.ts
Added a common date format for Germany.
2022-11-25 18:00:08 +01:00
fb09283e53 add some more properties for sentry 2022-11-25 13:07:40 +01:00
88ac365e03 use v1.28.0-focal instead of next-jammy 2022-11-25 11:52:14 +01:00
aec78cf875 lay the ground work for sentry integration 2022-11-25 11:32:57 +01:00
77c587681b using fetch instead of axios, should fix the issue 2022-11-24 22:25:23 +01:00
7ac8b906d9 add await 2022-11-24 22:16:00 +01:00
e9a5f86a6a using fetch instead of axios, server side 2022-11-24 22:14:01 +01:00
7238a3b50e some more logs 2022-11-24 22:01:00 +01:00
ebe13fa82e push a bunch of console.logs 2022-11-24 21:45:42 +01:00
6ee290a625 add logs to check what's wrong 2022-11-24 21:31:43 +01:00
69f2b7070f remove arm64 support for the time being, because of upstream support 2022-11-24 21:09:32 +01:00
11bea1c7c4 updating version to v3.6.13 2022-11-24 20:35:28 +01:00
68a1dc65c1 update pnpm-lock.yaml 2022-11-24 17:04:11 +01:00
4b1ce539d5 remove sentry integration 2022-11-24 16:58:36 +01:00
a6fbb8191d Update docker-build-push.yml 2022-11-24 16:32:22 +01:00
552ff281b8 I have no idea what I'm doing here. 2022-11-24 16:29:36 +01:00
54fad2f6d8 update docker-build-push.yml 2022-11-24 16:20:40 +01:00
78edcd7d0e fix typo in github workflow 2022-11-24 16:02:39 +01:00
a8034b21d5 attempting to fix github actions 2022-11-24 15:58:27 +01:00
f0e95905d2 trying out env instead of secrets 2022-11-24 15:44:28 +01:00
69a5276614 attempt to fix locale issue 2022-11-24 15:40:49 +01:00
2e62eea351 fix sentry issue: 28c5a41aea3c4435902046e56c435e56 2022-11-24 15:38:21 +01:00
13d972b8f3 update docker-build-push.yaml 2022-11-24 15:15:35 +01:00
03cb198e95 move from env to secrets 2022-11-24 15:11:55 +01:00
67ee55b502 fix env for sentry auth token 2022-11-24 15:01:33 +01:00
b5998d7f3a pass sentry token to docker build push step 2022-11-24 14:58:26 +01:00
f71cf99b77 remove .git from .dockerignore 2022-11-24 13:27:43 +01:00
a2092a6a39 revert version back to 3.6.12 2022-11-24 12:58:15 +01:00
43c09666a0 add sentry CLI to github actions 2022-11-24 11:42:03 +01:00
0da23f95fd Merge pull request #1101 from stonespheres/patch-1
Fix link typo
2022-11-24 11:25:17 +01:00
e8f44e2142 update pnpm-lock.yaml 2022-11-24 11:23:37 +01:00
fbb237e982 Fix link typo
Bad practice on my part for last commit - did not check before push.
Link under table of contents fixed and now directs to the documentation at https://docs.rxresu.me
2022-11-24 18:22:57 +08:00
7f7c1d7b87 update version to 3.6.13 2022-11-24 11:21:45 +01:00
be0b7f20f9 integrate sentry for error logging 2022-11-24 11:21:30 +01:00
0672988fff Merge pull request #1100 from stonespheres/patch-1
Fixed formatting and typos on README.md
2022-11-24 11:01:38 +01:00
75dad60cb5 Fixed formatting and typos on README.md
- Under Table of Contents: Fixed the formatting error for the link to the docs.
- Under Languages: fixed typo Ukranian -> Ukrainian
- Under Building from Source: ...head over to the doc's -> head over to the docs
2022-11-24 17:47:29 +08:00
0140e3fce0 update version to 3.6.12 2022-11-23 15:20:34 +01:00
42d0e14b98 fix styling issues and theme cascades across all templates 2022-11-23 15:20:04 +01:00
9a42d684fb add branching deploy condition 2022-11-23 14:15:36 +01:00
ab6ad65445 update github actions to a more streamlined workflow using gh matrix 2022-11-23 14:10:14 +01:00
b613764ccc fix matrix variable name 2022-11-23 13:59:25 +01:00
ac44d0489f change name of test action so as to not trigger further actions 2022-11-23 13:56:59 +01:00
c57e6fbbb8 fix versioning of github action package 2022-11-23 13:56:22 +01:00
6c6da215c8 add on: [workflow_dispatch] to test github action 2022-11-23 13:55:15 +01:00
be700c7629 Testing a new streamlined GitHub Actions workflow 2022-11-23 13:53:41 +01:00
b697f73492 fix #1096 2022-11-23 13:11:29 +01:00
3106f94989 - update version to v.3.6.11
- update dependencies to latest versions
2022-11-23 13:04:59 +01:00
50f41f73d5 Add detailed description to page title, to increase SEO 2022-11-23 12:57:07 +01:00
83e3f59e68 fix #1082 2022-11-23 12:47:29 +01:00
056c61e985 resolves #1061, resolves #1027, resolves #1007, resolves #1001, resolves #987, resolves #890, resolves #882, resolves #837 2022-11-23 12:24:17 +01:00
d1a1b68302 fix #1095: make PDF_DELETION_TIME optional, add default value 2022-11-23 11:51:28 +01:00
6bd7b9a50f Merge pull request #1092 from GETandSELECT/main
Update common.json - tiny translation error to German
2022-11-23 11:41:54 +01:00
e6967aab88 Update common.json 2022-11-22 10:03:14 +00:00
47e96803e3 fix password recovery link 2022-11-19 09:37:23 +01:00
f9ef4d0a64 fix max width of description 2022-11-18 09:42:59 +01:00
c4b4e6013f Merge pull request #1073 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.21
Bump org.jetbrains.kotlin.android from 1.7.20 to 1.7.21 in /app
2022-11-15 11:36:04 +01:00
24bbc46c32 Merge pull request #1075 from RobbeVanslambrouck/main
fix typos in English and Dutch translation
2022-11-15 11:35:54 +01:00
85bc9ef124 fix typos in English and Dutch translation 2022-11-14 17:29:09 +01:00
33755a8573 remove console.log 2022-11-14 10:06:19 +01:00
ab45321889 fixes #1074 2022-11-14 10:05:51 +01:00
940b310f64 Bump org.jetbrains.kotlin.android from 1.7.20 to 1.7.21 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.20 to 1.7.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.20...v1.7.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 02:06:07 +00:00
8026241b6c release: v3.6.9 2022-11-13 14:28:47 +01:00
89b35392bd Merge pull request #1060 from sashokbg/feat/multiple_work_sections
feat: additional work sections
2022-11-13 10:28:28 +01:00
62eb239ec4 Merge pull request #1023 from klejejs/main
Add PDF file caching
2022-11-13 10:28:19 +01:00
7fdf8c1f0c Merge pull request #1069 from arvaid/main
fixed grammatical and stylistic errors in Hungarian translation
2022-11-07 09:28:00 +01:00
538697238a fixed grammatical and stylistic errors in Hungarian translation 2022-11-06 14:46:55 +01:00
7bc4a998fe feat: additional work sections 2022-11-03 17:59:15 +01:00
e33df485ab Merge pull request #951 from Leopere/patch-3
Cleanup superfluous docker-compose.yml declarations
2022-11-02 23:36:21 +01:00
36ae54fe17 Merge branch 'main' into patch-3 2022-11-02 23:36:13 +01:00
50958fd6df Merge pull request #1058 from klejejs/fix/zip_file_upload_crash
Fix server crash when non-zip file is uploaded
2022-10-26 07:57:49 +02:00
e9e595f0d0 Fix server crash when non-zip file is uploaded 2022-10-25 22:03:18 +03:00
43ddfba777 Add scheduled deletion for cached PDF files 2022-10-25 21:10:40 +03:00
78a32961d7 Add PDF file caching 2022-10-25 20:16:39 +03:00
9b1f3eda05 Merge pull request #1053 from AmruthPillai/i18n_main
New Crowdin updates
2022-10-24 07:58:36 +02:00
1154621e5c Merge pull request #1057 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.2.1
Bump docker/setup-buildx-action from 2.1.0 to 2.2.1
2022-10-24 07:58:25 +02:00
e7aeee77a7 Merge pull request #1056 from AmruthPillai/dependabot/github_actions/digitalocean/action-doctl-2.2.0
Bump digitalocean/action-doctl from 2.1.1 to 2.2.0
2022-10-24 07:58:16 +02:00
fab3988a36 Bump docker/setup-buildx-action from 2.1.0 to 2.2.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.1.0 to 2.2.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.1.0...v2.2.1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 02:53:50 +00:00
354cad88d3 Bump digitalocean/action-doctl from 2.1.1 to 2.2.0
Bumps [digitalocean/action-doctl](https://github.com/digitalocean/action-doctl) from 2.1.1 to 2.2.0.
- [Release notes](https://github.com/digitalocean/action-doctl/releases)
- [Commits](https://github.com/digitalocean/action-doctl/compare/v2.1.1...v2.2.0)

---
updated-dependencies:
- dependency-name: digitalocean/action-doctl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 02:53:45 +00:00
876f930f30 New translations builder.json (Indonesian) 2022-10-21 05:55:29 +02:00
5b3ea46f0f Merge pull request #1045 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.1.0
Bump docker/setup-buildx-action from 2.0.0 to 2.1.0
2022-10-17 10:39:55 +02:00
37a2563c11 Merge pull request #1047 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.2.0
Bump docker/build-push-action from 3.1.1 to 3.2.0
2022-10-17 10:39:42 +02:00
cb977a146b Merge pull request #1046 from AmruthPillai/dependabot/github_actions/docker/login-action-2.1.0
Bump docker/login-action from 2.0.0 to 2.1.0
2022-10-17 10:39:31 +02:00
72b2551b6d Merge pull request #1044 from AmruthPillai/dependabot/github_actions/docker/setup-qemu-action-2.1.0
Bump docker/setup-qemu-action from 2.0.0 to 2.1.0
2022-10-17 10:39:22 +02:00
c94633e616 Bump docker/build-push-action from 3.1.1 to 3.2.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.1...v3.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:39 +00:00
7fee2d670f Bump docker/login-action from 2.0.0 to 2.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:36 +00:00
837b06eb38 Bump docker/setup-buildx-action from 2.0.0 to 2.1.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:33 +00:00
2b8860b21c Bump docker/setup-qemu-action from 2.0.0 to 2.1.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:31 +00:00
3a7b98d30e Fix issue with variable accessor 2022-10-15 23:47:16 +02:00
284a39aa77 add libc6-compat to dockerfile 2022-10-15 01:27:06 +02:00
c14c9955dd modify docker-build-push action 2022-10-15 01:19:19 +02:00
4de787157a update dependencies 2022-10-15 01:10:10 +02:00
6bc6425a01 Merge pull request #1039 from AmruthPillai/i18n_main
New Crowdin updates
2022-10-15 01:03:08 +02:00
6051305908 New translations builder.json (Turkish) 2022-10-15 00:59:54 +02:00
5e13253454 New translations builder.json (Swedish) 2022-10-15 00:59:53 +02:00
c1fd2b40e3 New translations builder.json (Serbian (Cyrillic)) 2022-10-15 00:59:52 +02:00
fccf7a7b56 New translations builder.json (Russian) 2022-10-15 00:59:51 +02:00
5098b094db New translations builder.json (Portuguese) 2022-10-15 00:59:50 +02:00
7c1eb74aca New translations builder.json (Polish) 2022-10-15 00:59:49 +02:00
7f9ede8ff0 New translations builder.json (Norwegian) 2022-10-15 00:59:48 +02:00
172b23e429 New translations builder.json (Dutch) 2022-10-15 00:59:47 +02:00
f287ca6183 New translations builder.json (Korean) 2022-10-15 00:59:46 +02:00
7548e36aaf New translations builder.json (Japanese) 2022-10-15 00:59:45 +02:00
2f754616b4 New translations builder.json (Ukrainian) 2022-10-15 00:59:44 +02:00
dc51f6f9b2 New translations builder.json (Italian) 2022-10-15 00:59:43 +02:00
0cdac1d657 New translations builder.json (Hebrew) 2022-10-15 00:59:42 +02:00
c3cfe8ae7b New translations builder.json (Finnish) 2022-10-15 00:59:41 +02:00
08435c173b New translations builder.json (Greek) 2022-10-15 00:59:40 +02:00
62cc2d6eac New translations builder.json (German) 2022-10-15 00:59:39 +02:00
5a6f6e2b6c New translations builder.json (Danish) 2022-10-15 00:59:38 +02:00
2dfa8c04a1 New translations builder.json (Czech) 2022-10-15 00:59:37 +02:00
63e3f94d2d New translations builder.json (Catalan) 2022-10-15 00:59:36 +02:00
7f45a8cb7f New translations builder.json (Bulgarian) 2022-10-15 00:59:35 +02:00
4377ebb811 New translations builder.json (Arabic) 2022-10-15 00:59:35 +02:00
ed3af6975b New translations builder.json (Spanish) 2022-10-15 00:59:34 +02:00
7904905a8b New translations builder.json (Hungarian) 2022-10-15 00:59:33 +02:00
bd2e6d2bf2 New translations builder.json (French) 2022-10-15 00:59:32 +02:00
ae4e9e688e New translations builder.json (Chinese Simplified) 2022-10-15 00:59:31 +02:00
78c45b7019 New translations builder.json (Indonesian) 2022-10-15 00:59:30 +02:00
9a2fbbec4e New translations builder.json (Vietnamese) 2022-10-15 00:59:25 +02:00
93d751d9be New translations builder.json (Nepali) 2022-10-15 00:59:24 +02:00
9926ed2262 New translations builder.json (Odia) 2022-10-15 00:59:23 +02:00
62220d20e7 New translations builder.json (Kannada) 2022-10-15 00:59:22 +02:00
2f6108cd29 New translations builder.json (Malayalam) 2022-10-15 00:59:21 +02:00
7aeed37869 New translations builder.json (Hindi) 2022-10-15 00:59:20 +02:00
ed99659b7b New translations builder.json (Marathi) 2022-10-15 00:59:19 +02:00
5e33d00910 New translations builder.json (Bengali) 2022-10-15 00:59:18 +02:00
c00d0341e6 New translations builder.json (Tamil) 2022-10-15 00:59:17 +02:00
511ae036c2 New translations builder.json (Khmer) 2022-10-15 00:59:16 +02:00
1642ec9ba2 New translations builder.json (Persian) 2022-10-15 00:59:15 +02:00
1115bc2b69 New translations builder.json (Amharic) 2022-10-15 00:59:14 +02:00
27e5c7811c New translations builder.json (Romanian) 2022-10-15 00:59:13 +02:00
3b739f0bb7 New translations common.json (Marathi) 2022-10-15 00:56:28 +02:00
d937ba2056 New translations common.json (Khmer) 2022-10-15 00:56:25 +02:00
de110d7de1 New translations common.json (Vietnamese) 2022-10-15 00:56:23 +02:00
b03229b5e0 New translations common.json (Korean) 2022-10-15 00:56:16 +02:00
280fc73c7b New translations common.json (Hungarian) 2022-10-15 00:56:13 +02:00
677ad2a115 New translations common.json (Odia) 2022-10-15 00:56:12 +02:00
f394b26d18 New translations common.json (Nepali) 2022-10-15 00:56:11 +02:00
aab4e2e941 New translations common.json (Czech) 2022-10-15 00:55:50 +02:00
f0f552a635 Feature: Toggle Page Size between ISO A4 and US Letter 2022-10-15 00:54:59 +02:00
136e143e12 Merge pull request #1032 from kmkhant/main
FIX whole page reload when press enter
2022-10-13 19:16:16 +02:00
857e4b8670 Merge branch 'main' of https://github.com/kmkhant/Reactive-Resume 2022-10-13 20:45:28 +06:30
ff03d41d97 feat:add pressing return(enter) to submit modal 2022-10-13 20:40:51 +06:30
2bad37aaf3 Merge branch 'main' into main 2022-10-13 17:08:08 +06:30
3a40fbf78b Merge pull request #1036 from dnltsk/main
cleanup - removed temp thumbnail file
2022-10-13 09:43:41 +02:00
49c638fb18 Delete .DS_Store 2022-10-12 22:37:08 +02:00
50e8d60773 fix interest form reloads when press enter 2022-10-10 18:24:57 +06:30
bf157a8d1a Merge pull request #1030 from AmruthPillai/dependabot/github_actions/actions/checkout-3.1.0
Bump actions/checkout from 3.0.2 to 3.1.0
2022-10-10 08:31:58 +02:00
c4f5955fcd Merge pull request #1031 from SSHSRN/loginModal
Updated login modal
2022-10-10 08:31:48 +02:00
86d33b0f21 updated login modal
Signed-off-by: SRIHARI S <sshsrn@gmail.com>
2022-10-10 08:17:04 +05:30
56bca30639 Bump actions/checkout from 3.0.2 to 3.1.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.2...v3.1.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 02:15:49 +00:00
eed3b76959 ignore axios ts error 2022-10-07 11:04:13 +02:00
615eb3ad5d update dependencies, update version to 3.6.7 2022-10-07 10:44:29 +02:00
b505199319 add Amharic language 2022-10-07 10:31:03 +02:00
91e55e642c Merge pull request #1025 from AmruthPillai/i18n_main
New Crowdin updates
2022-10-07 10:18:53 +02:00
f549d8749a New translations landing.json (French) 2022-10-07 10:18:05 +02:00
f31123659e Merge pull request #1020 from arefathi/amharic-locale
Completed Amharic translations
2022-10-07 10:12:59 +02:00
93633c9415 Completed Amharic translations 2022-10-04 14:14:28 +03:00
19b9fa4857 Merge pull request #1021 from Rohanfizz/main
Fixed digitalOcean Sponsor logo
2022-10-04 10:25:09 +02:00
a5c84214f9 Fixed digitalOcean Sponsor logo 2022-10-03 23:35:26 +05:30
65bb8b5ceb Worked on Amharic translations 2022-10-03 16:15:52 +03:00
06a11a1f2a Merge pull request #1018 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.20
Bump org.jetbrains.kotlin.android from 1.7.10 to 1.7.20 in /app
2022-10-03 07:20:15 +02:00
53eedc8500 Bump org.jetbrains.kotlin.android from 1.7.10 to 1.7.20 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.10 to 1.7.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.20/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.10...v1.7.20)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 02:27:56 +00:00
4b2d9d7026 skip React.FC for App 2022-09-15 20:40:19 +02:00
045145ed67 upgrade version to v3.6.6 2022-09-15 19:57:46 +02:00
ec27e5e6ab fix language difference when printing resume 2022-09-15 19:49:57 +02:00
2faa15db5a Merge pull request #997 from AmruthPillai/i18n_main
New Crowdin updates
2022-09-13 07:00:22 +02:00
2c2893d5fc New translations common.json (Khmer) 2022-09-07 04:39:03 +02:00
19c7ebe8a4 Update README.md 2022-09-04 08:12:55 +02:00
c24847ac0b Update README.md 2022-09-04 08:10:54 +02:00
7137694832 update app version to 3.6.5 2022-08-29 20:44:24 +02:00
049de38da2 fix local storage upload of photo/avatar 2022-08-29 20:44:07 +02:00
17019e446b Update FUNDING.yml 2022-08-29 19:57:16 +02:00
d73ee7b7f8 reformat docker setup to remove traefik dependency 2022-08-29 09:03:23 +02:00
2c95dc2ac8 Merge pull request #990 from AymaneBoukrouh/main
update landing.json
2022-08-29 07:48:54 +02:00
e148dd3e82 Merge pull request #1 from AymaneBoukrouh/AymaneBoukrouh-fr-locale-fix
update landing.json
2022-08-28 21:42:43 +01:00
0aa2d61c55 update landing.json
Fix typo (mauvaiss -> mauvaise)
Fix innacuracy (pistage -> traçabilité), pistage (tracking) means car track, and not user tracking.
2022-08-28 21:40:07 +01:00
0b2c1ffd26 add ko, mr locales 2022-08-28 16:22:14 +02:00
a531e8cd89 Merge pull request #989 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-28 15:50:51 +02:00
152e386141 New translations landing.json (Odia) 2022-08-28 15:50:22 +02:00
87189cd045 New translations landing.json (Kannada) 2022-08-28 15:50:21 +02:00
114b04a740 New translations landing.json (Malayalam) 2022-08-28 15:50:20 +02:00
383cde53df New translations landing.json (Bengali) 2022-08-28 15:50:19 +02:00
9bf98d3c49 New translations landing.json (Tamil) 2022-08-28 15:50:18 +02:00
e62f0a3f5e New translations landing.json (Persian) 2022-08-28 15:50:17 +02:00
10fb7b143a New translations landing.json (Indonesian) 2022-08-28 15:50:16 +02:00
67ba58e798 New translations landing.json (Vietnamese) 2022-08-28 15:50:15 +02:00
179cf99f83 New translations landing.json (Chinese Simplified) 2022-08-28 15:50:14 +02:00
81a51d487b New translations landing.json (Turkish) 2022-08-28 15:50:13 +02:00
b41b50565a New translations landing.json (Hindi) 2022-08-28 15:50:13 +02:00
8cd073eb62 New translations landing.json (Swedish) 2022-08-28 15:50:12 +02:00
f4f8502703 New translations landing.json (Russian) 2022-08-28 15:50:03 +02:00
0d079d7b24 New translations landing.json (Portuguese) 2022-08-28 15:50:02 +02:00
167f7c902f New translations landing.json (Polish) 2022-08-28 15:49:50 +02:00
7c630df927 New translations landing.json (Dutch) 2022-08-28 15:49:49 +02:00
b391c561e5 New translations landing.json (Italian) 2022-08-28 15:49:48 +02:00
4dbe015fbf New translations landing.json (Hungarian) 2022-08-28 15:49:47 +02:00
bae35b2614 New translations landing.json (Hebrew) 2022-08-28 15:49:46 +02:00
8b7719a198 New translations landing.json (Finnish) 2022-08-28 15:49:46 +02:00
39cf238de3 New translations landing.json (Greek) 2022-08-28 15:49:45 +02:00
98855ae230 New translations landing.json (German) 2022-08-28 15:49:44 +02:00
ab92cbf21e New translations landing.json (Danish) 2022-08-28 15:49:43 +02:00
388ab4e29a New translations landing.json (Czech) 2022-08-28 15:49:42 +02:00
bb18c59018 New translations landing.json (Arabic) 2022-08-28 15:49:41 +02:00
217ab6ab93 New translations landing.json (French) 2022-08-28 15:49:40 +02:00
12690b33d7 New translations landing.json (Spanish) 2022-08-28 15:49:36 +02:00
bff5173701 New translations builder.json (Indonesian) 2022-08-28 15:49:34 +02:00
821813d90d New translations builder.json (Vietnamese) 2022-08-28 15:49:33 +02:00
b1d3c4da5b New translations builder.json (Chinese Simplified) 2022-08-28 15:49:32 +02:00
39f962b440 New translations builder.json (Swedish) 2022-08-28 15:49:31 +02:00
b1cfd4b7c8 New translations builder.json (Serbian (Cyrillic)) 2022-08-28 15:49:31 +02:00
c98d4a6004 New translations builder.json (Russian) 2022-08-28 15:49:30 +02:00
a5ec1f8609 New translations builder.json (Portuguese) 2022-08-28 15:49:29 +02:00
b2c897660d New translations builder.json (Polish) 2022-08-28 15:49:28 +02:00
c1a7fe7354 New translations builder.json (Dutch) 2022-08-28 15:49:27 +02:00
b628c4a21b New translations builder.json (Italian) 2022-08-28 15:49:26 +02:00
5fb4935146 New translations builder.json (Persian) 2022-08-28 15:49:25 +02:00
ae5280435d New translations builder.json (Hungarian) 2022-08-28 15:49:24 +02:00
6451609d8f New translations builder.json (Finnish) 2022-08-28 15:49:24 +02:00
edfe79f580 New translations builder.json (Greek) 2022-08-28 15:49:23 +02:00
5d7318d46d New translations builder.json (German) 2022-08-28 15:49:22 +02:00
77428c1661 New translations builder.json (Danish) 2022-08-28 15:49:21 +02:00
a2e075df39 New translations builder.json (Czech) 2022-08-28 15:49:20 +02:00
63af1d2b69 New translations builder.json (Arabic) 2022-08-28 15:49:19 +02:00
99c5016762 New translations builder.json (Spanish) 2022-08-28 15:49:18 +02:00
44ff6caf27 New translations builder.json (French) 2022-08-28 15:49:17 +02:00
7d2981f7ce New translations landing.json (Bulgarian) 2022-08-28 15:49:16 +02:00
fcc5dd4bad New translations builder.json (Hebrew) 2022-08-28 15:49:15 +02:00
a9fb995d39 New translations builder.json (Tamil) 2022-08-28 15:49:14 +02:00
31a85bfaa6 New translations builder.json (Hindi) 2022-08-28 15:49:13 +02:00
51151a601e New translations builder.json (Bengali) 2022-08-28 15:49:08 +02:00
9931b22313 New translations builder.json (Odia) 2022-08-28 15:49:04 +02:00
fdf6b76c21 New translations builder.json (Kannada) 2022-08-28 15:49:03 +02:00
b4696301ed New translations builder.json (Malayalam) 2022-08-28 15:49:02 +02:00
294d7b5dab New translations builder.json (Bulgarian) 2022-08-28 15:49:00 +02:00
0430920f56 New translations landing.json (Catalan) 2022-08-28 15:48:59 +02:00
5444b4f5ab New translations landing.json (Romanian) 2022-08-28 15:48:58 +02:00
d649b7fc08 New translations dashboard.json (Marathi) 2022-08-28 15:48:58 +02:00
20b39c0b35 New translations dashboard.json (Korean) 2022-08-28 15:48:56 +02:00
8b87b054ee New translations common.json (Marathi) 2022-08-28 15:48:53 +02:00
5eb68e9e21 New translations landing.json (Japanese) 2022-08-28 15:48:53 +02:00
ec2606d625 New translations common.json (Korean) 2022-08-28 15:48:51 +02:00
9055010f61 New translations builder.json (Marathi) 2022-08-28 15:48:49 +02:00
9763b5c270 New translations builder.json (Ukrainian) 2022-08-28 15:48:48 +02:00
75c3bfe9e5 New translations builder.json (Norwegian) 2022-08-28 15:48:47 +02:00
7f39247655 New translations builder.json (Korean) 2022-08-28 15:48:46 +02:00
d6f11e7807 New translations builder.json (Japanese) 2022-08-28 15:48:45 +02:00
361a1e65d0 New translations builder.json (Catalan) 2022-08-28 15:48:44 +02:00
6fddbe0c59 New translations landing.json (Korean) 2022-08-28 15:48:43 +02:00
3412711f27 New translations landing.json (Serbian (Cyrillic)) 2022-08-28 15:48:42 +02:00
a4bfc17431 New translations landing.json (Khmer) 2022-08-28 15:48:41 +02:00
7c698ef9d2 New translations builder.json (Khmer) 2022-08-28 15:48:40 +02:00
e929faf9b0 New translations builder.json (Turkish) 2022-08-28 15:48:39 +02:00
e3ff18b6dd New translations landing.json (Nepali) 2022-08-28 15:48:37 +02:00
2734493ca4 New translations landing.json (Norwegian) 2022-08-28 15:48:36 +02:00
f0015143c6 New translations builder.json (Nepali) 2022-08-28 15:48:35 +02:00
8d97b195a0 New translations modals.json (Korean) 2022-08-28 15:48:33 +02:00
f30692196a New translations landing.json (Marathi) 2022-08-28 15:48:31 +02:00
242278edd1 New translations landing.json (Ukrainian) 2022-08-28 15:48:30 +02:00
162759c716 New translations modals.json (Marathi) 2022-08-28 15:48:29 +02:00
f0c6bd16f5 New translations builder.json (Romanian) 2022-08-28 15:48:28 +02:00
fac8a9d4ff fix ul > li styles, add docs link to pages 2022-08-28 15:38:52 +02:00
9ff1ffb0b9 Merge pull request #988 from AmruthPillai/feature/remove-docs
Feature Release: v3.6.3
2022-08-28 11:51:08 +02:00
79d3ef1306 docs(docs): 🗑️ remove docs app, include more i18n locales 2022-08-28 11:16:08 +02:00
f4a12285f5 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-08-28 10:57:49 +02:00
120ad827ad Merge pull request #986 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-28 10:57:40 +02:00
a129b2033f New translations builder.json (Bengali) 2022-08-28 10:56:29 +02:00
372e508936 New translations builder.json (Hindi) 2022-08-28 10:56:28 +02:00
ce8ada2621 New translations builder.json (Malayalam) 2022-08-28 10:56:27 +02:00
d0563d2ec9 New translations builder.json (Kannada) 2022-08-28 10:56:26 +02:00
dacd4e311c New translations builder.json (Odia) 2022-08-28 10:56:25 +02:00
d6d016ba5d New translations builder.json (Finnish) 2022-08-28 10:56:12 +02:00
407ac990ac New translations builder.json (French) 2022-08-28 10:56:12 +02:00
895e9845fc New translations builder.json (Spanish) 2022-08-28 10:56:11 +02:00
859a44197d New translations builder.json (Arabic) 2022-08-28 10:56:10 +02:00
0b80f33d46 New translations builder.json (Czech) 2022-08-28 10:56:09 +02:00
f246a17038 New translations builder.json (Danish) 2022-08-28 10:56:08 +02:00
10c13d54be New translations builder.json (German) 2022-08-28 10:56:07 +02:00
66316b740b New translations builder.json (Greek) 2022-08-28 10:56:06 +02:00
ae94748abe New translations builder.json (Hebrew) 2022-08-28 10:56:05 +02:00
fe11be60d3 New translations builder.json (Portuguese) 2022-08-28 10:56:04 +02:00
1d3e47adb2 New translations builder.json (Italian) 2022-08-28 10:56:03 +02:00
fdd5f373c4 New translations builder.json (Dutch) 2022-08-28 10:56:02 +02:00
0f99d6cdfb New translations builder.json (Polish) 2022-08-28 10:56:01 +02:00
742865a66a New translations builder.json (Russian) 2022-08-28 10:56:00 +02:00
12dcf04981 New translations builder.json (Swedish) 2022-08-28 10:55:58 +02:00
c0d76eaf0e New translations builder.json (Chinese Simplified) 2022-08-28 10:55:57 +02:00
2f430a1d07 New translations builder.json (Vietnamese) 2022-08-28 10:55:57 +02:00
576b942027 New translations builder.json (Indonesian) 2022-08-28 10:55:56 +02:00
7df777ad0c New translations builder.json (Persian) 2022-08-28 10:55:55 +02:00
e5e30f290a New translations builder.json (Hungarian) 2022-08-28 10:55:54 +02:00
dcb476c28b New translations builder.json (Tamil) 2022-08-28 10:55:53 +02:00
e09f281461 New translations landing.json (Norwegian) 2022-08-28 10:55:52 +02:00
293f008f0a New translations landing.json (Japanese) 2022-08-28 10:55:51 +02:00
f9cd1c779f New translations landing.json (Catalan) 2022-08-28 10:55:51 +02:00
d931590374 New translations landing.json (Romanian) 2022-08-28 10:55:50 +02:00
907ffacca0 New translations dashboard.json (Ukrainian) 2022-08-28 10:55:49 +02:00
a263d54319 New translations dashboard.json (Serbian (Cyrillic)) 2022-08-28 10:55:48 +02:00
0d478e1286 New translations dashboard.json (Japanese) 2022-08-28 10:55:47 +02:00
08997a1728 New translations dashboard.json (Catalan) 2022-08-28 10:55:46 +02:00
688bb11844 New translations common.json (Ukrainian) 2022-08-28 10:55:45 +02:00
0bf4e0b2ae New translations common.json (Serbian (Cyrillic)) 2022-08-28 10:55:44 +02:00
60bbfb6703 New translations common.json (Norwegian) 2022-08-28 10:55:43 +02:00
706307b073 New translations common.json (Japanese) 2022-08-28 10:55:42 +02:00
3be18636ff New translations common.json (Catalan) 2022-08-28 10:55:42 +02:00
b2ee2f9d09 New translations common.json (Romanian) 2022-08-28 10:55:41 +02:00
fe54a2388e New translations dashboard.json (Romanian) 2022-08-28 10:55:40 +02:00
be170dd985 New translations landing.json (Ukrainian) 2022-08-28 10:55:39 +02:00
7fd26ad2c3 New translations landing.json (Serbian (Cyrillic)) 2022-08-28 10:55:38 +02:00
ec30aff4d1 New translations modals.json (Romanian) 2022-08-28 10:55:37 +02:00
0b3023989b New translations modals.json (Khmer) 2022-08-28 10:55:37 +02:00
3b96348183 New translations modals.json (Nepali) 2022-08-28 10:55:34 +02:00
30080b23cd New translations landing.json (Nepali) 2022-08-28 10:55:33 +02:00
b3ba1e5b56 New translations dashboard.json (Nepali) 2022-08-28 10:55:32 +02:00
bf72b557ca New translations builder.json (Nepali) 2022-08-28 10:55:31 +02:00
344fcb1078 New translations common.json (Nepali) 2022-08-28 10:55:30 +02:00
ddd71567c1 New translations modals.json (Ukrainian) 2022-08-28 10:55:29 +02:00
adc679a6e5 New translations modals.json (Serbian (Cyrillic)) 2022-08-28 10:55:29 +02:00
8f49536119 New translations modals.json (Norwegian) 2022-08-28 10:55:28 +02:00
750fedbd74 New translations modals.json (Japanese) 2022-08-28 10:55:27 +02:00
cd59ea7e9b New translations modals.json (Catalan) 2022-08-28 10:55:26 +02:00
5c1b44ddea New translations builder.json (Japanese) 2022-08-28 10:55:25 +02:00
eb6450a9de New translations builder.json (Norwegian) 2022-08-28 10:55:24 +02:00
0b620f41fc New translations builder.json (Ukrainian) 2022-08-28 10:55:24 +02:00
64e0e677d7 New translations builder.json (Bulgarian) 2022-08-28 10:55:23 +02:00
19ae1cf036 New translations builder.json (Turkish) 2022-08-28 10:55:22 +02:00
c221cef77f New translations builder.json (Khmer) 2022-08-28 10:55:21 +02:00
77e3dc2b16 New translations builder.json (Catalan) 2022-08-28 10:55:20 +02:00
9c9368acd5 New translations builder.json (Romanian) 2022-08-28 10:55:19 +02:00
22b91d3f94 feat(docker): add arm64 support 2022-08-28 09:57:15 +02:00
d844092d0f fix(client): 🎨 add style to make list item appear after bullet icon 2022-08-28 09:57:00 +02:00
b3e118fb8b New translations builder.json (Serbian (Cyrillic)) 2022-08-27 12:11:42 +02:00
fe37eb2791 fix(client): 💄 add overflow-y-scroll to left/right sidebar navigation 2022-08-26 08:06:47 +02:00
7902f67f4f feat: update app version to 3.6.2 2022-08-26 00:00:18 +02:00
57dd110187 Merge pull request #981 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-25 10:06:11 +02:00
829375e87a New translations landing.json (Khmer) 2022-08-24 14:27:42 +02:00
0a15b4ebc9 New translations dashboard.json (Khmer) 2022-08-24 14:27:41 +02:00
2bff3fc20b New translations common.json (Khmer) 2022-08-24 14:27:40 +02:00
1e997fe67c bump up versions to v3.6.1 2022-08-23 08:04:25 +02:00
dbf06455e4 Merge pull request #980 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-22 20:44:32 +02:00
42c7c9ade1 New translations modals.json (Odia) 2022-08-22 20:15:54 +02:00
36c19bac3f New translations modals.json (Kannada) 2022-08-22 20:15:53 +02:00
44a9300aff New translations modals.json (Malayalam) 2022-08-22 20:15:52 +02:00
610b5ba9d4 New translations modals.json (Hindi) 2022-08-22 20:15:51 +02:00
769e8811cd New translations modals.json (Bengali) 2022-08-22 20:15:50 +02:00
676fbcafe7 New translations modals.json (Tamil) 2022-08-22 20:15:49 +02:00
3935ae1e04 New translations modals.json (Indonesian) 2022-08-22 20:15:41 +02:00
ef6b765266 New translations modals.json (Persian) 2022-08-22 20:15:40 +02:00
647dd6e682 New translations modals.json (Vietnamese) 2022-08-22 20:15:39 +02:00
43841e9962 New translations modals.json (Chinese Simplified) 2022-08-22 20:15:38 +02:00
e2236c3207 New translations modals.json (German) 2022-08-22 20:15:37 +02:00
7389d33ee5 New translations modals.json (Greek) 2022-08-22 20:15:25 +02:00
4b21eabec9 New translations modals.json (Dutch) 2022-08-22 20:15:24 +02:00
1815b0fa21 New translations modals.json (Hebrew) 2022-08-22 20:15:23 +02:00
6c4d3cbd56 New translations modals.json (Finnish) 2022-08-22 20:15:22 +02:00
8c2f3c8504 New translations modals.json (Turkish) 2022-08-22 20:15:21 +02:00
3aa7a98d9d New translations modals.json (Swedish) 2022-08-22 20:15:20 +02:00
5519ec898d New translations modals.json (Russian) 2022-08-22 20:15:19 +02:00
1cd4c5d733 New translations modals.json (Portuguese) 2022-08-22 20:15:18 +02:00
73d11c323f New translations modals.json (Polish) 2022-08-22 20:15:17 +02:00
38812fcf25 New translations modals.json (French) 2022-08-22 20:15:16 +02:00
c22de12f12 New translations modals.json (Spanish) 2022-08-22 20:15:15 +02:00
c94c971599 New translations modals.json (Arabic) 2022-08-22 20:15:13 +02:00
c9a71a5917 New translations modals.json (Czech) 2022-08-22 20:15:12 +02:00
8a29387470 New translations modals.json (Danish) 2022-08-22 20:15:11 +02:00
592511b090 New translations modals.json (Hungarian) 2022-08-22 20:15:10 +02:00
af63fd38d4 New translations modals.json (Italian) 2022-08-22 20:15:09 +02:00
bf38b1b254 New translations modals.json (Bulgarian) 2022-08-22 20:14:23 +02:00
4a1c0079db Merge pull request #979 from AmruthPillai/feature/turbo
Implement Turbo Workspaces, add ARM64 support, fix Google OAuth etc.
2022-08-22 19:59:43 +02:00
5b6f6b7621 use nodemailer/smtp instead of sendgrid 2022-08-22 19:26:13 +02:00
02587255fe update version to 3.6.0 2022-08-22 15:24:30 +02:00
9ef2a84ac2 update examples for reaching client/server in .env 2022-08-22 12:44:50 +02:00
77b1c5b536 update Dockerfile 2022-08-22 12:17:41 +02:00
bf956fe18c use @react-oauth/google library for google auth 2022-08-22 11:26:30 +02:00
4114f1e1dd remove timeouts in CI 2022-08-22 09:34:35 +02:00
668d39fa87 change tagname of docker image 2022-08-22 09:17:32 +02:00
0d88a18757 remove husky, lint-staged 2022-08-21 22:18:27 +02:00
0630369087 Implement Turbo Workspaces, among other things 2022-08-21 22:18:12 +02:00
73af4a6859 chore(dependencies): updating dependencies to latest versions 2022-08-21 00:44:11 +02:00
99ddeb25a9 Merge pull request #972 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-17 08:46:38 +02:00
685aa06778 Merge pull request #974 from kgotso/main
Removed Check on hard coded urls
2022-08-15 22:57:01 +02:00
460abc6f1d Removed Check on hard coded urls
This forces the backend to continuously call home and break if no response is received
2022-08-15 19:43:32 +02:00
04f02157ac New translations builder.json (Turkish) 2022-08-14 21:41:45 +02:00
828a4a8715 Merge pull request #970 from m-GDEV/patch-1
Fixed small formatting issue in README
2022-08-13 09:23:43 +02:00
5b3141cd49 Fixed small formatting issue in README 2022-08-12 17:06:55 -04:00
779d22101f chore(release): 3.5.3 2022-08-11 20:21:55 +02:00
ef240b2110 add Bulgarian language, update dependencies 2022-08-11 20:21:19 +02:00
32bb7354a4 Merge pull request #969 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-11 20:12:06 +02:00
0dcbad1f8a New translations modals.json (Bulgarian) 2022-08-11 10:27:23 +02:00
a74921b27a New translations builder.json (Bulgarian) 2022-08-11 10:27:21 +02:00
d4f47423c9 New translations common.json (Bulgarian) 2022-08-11 10:27:20 +02:00
03f9a6543c New translations dashboard.json (Bulgarian) 2022-08-11 10:27:18 +02:00
eb89cfcf5d New translations landing.json (Bulgarian) 2022-08-11 10:27:17 +02:00
c52ef9ecb7 Merge pull request #965 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.1.1
chore(deps): bump docker/build-push-action from 3.1.0 to 3.1.1
2022-08-08 05:53:47 +02:00
c499abbb88 chore(deps): bump docker/build-push-action from 3.1.0 to 3.1.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 02:15:50 +00:00
1a7ee88ecd chore(release): 3.5.2 2022-08-04 16:15:29 +02:00
16d19eb70f feat(client): 💫 add Finnish language support 2022-08-04 16:13:49 +02:00
331346b99c chore(dependencies): ⬆️ upgrading dependencies to latest versions 2022-08-04 16:10:33 +02:00
95d265f672 Merge pull request #956 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-04 16:09:46 +02:00
315c7d6328 New translations modals.json (Finnish) 2022-07-31 22:22:32 +02:00
490e174564 New translations common.json (Finnish) 2022-07-31 22:22:30 +02:00
b5cde79f8b New translations builder.json (Finnish) 2022-07-31 22:22:29 +02:00
d50f14bb78 New translations dashboard.json (Finnish) 2022-07-31 22:22:28 +02:00
c13a751c1a New translations landing.json (Finnish) 2022-07-31 22:22:26 +02:00
5c37fc55d5 New translations builder.json (Indonesian) 2022-07-30 17:08:34 +02:00
48a0f90597 chore(release): 3.5.1 2022-07-30 13:01:00 +02:00
05d3f1f06f fix(server): don't initialize sendgrid if the apikey is empty 2022-07-30 12:57:35 +02:00
4d43f6a642 feat(client): ask for confirmation when resetting a resume 2022-07-30 12:56:40 +02:00
f7363ccdd7 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-07-30 12:56:13 +02:00
07c91e9ac2 feat(docker): remove ports from postgres docker instance 2022-07-30 12:56:04 +02:00
cbe08f1d2c Merge pull request #950 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.1.0
chore(deps): bump docker/build-push-action from 3.0.0 to 3.1.0
2022-07-30 12:43:46 +02:00
c2617a8277 Merge pull request #944 from AmruthPillai/i18n_main
New Crowdin updates
2022-07-30 12:43:36 +02:00
fe72d2de41 chore(release): 3.5.0 2022-07-30 12:42:31 +02:00
23667e218f chore(deps): updating project dependencies to their latest versions 2022-07-30 12:41:37 +02:00
977fa72dde fix(client): 🐛 fix mui rendering of utc dates 2022-07-30 12:21:05 +02:00
5197f954c0 fix(client): 🐛 attempt to fix the one-off date issue
use utc functions from dayjs to correspond to the same date on the server
2022-07-31 02:13:08 -08:00
58341e4cd2 New translations builder.json (Serbian (Cyrillic)) 2022-07-28 13:44:38 +02:00
fc0b69796f Cleanup superfluous docker-compose.yml declarations 2022-07-25 10:15:03 -04:00
1559703567 chore(deps): bump docker/build-push-action from 3.0.0 to 3.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 02:24:03 +00:00
0a1fd50d07 New translations dashboard.json (Norwegian) 2022-07-17 03:00:38 +02:00
1c19062c63 chore(release): 3.4.8 2022-07-13 11:08:14 +02:00
25cf594eb9 feat(google): add toast to display error message from google 2022-07-13 11:05:27 +02:00
1c3beee6cd chore(deps): update dependencies 2022-07-13 09:40:29 +02:00
95c3d4c315 Merge pull request #937 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.10
chore(deps): bump org.jetbrains.kotlin.android from 1.7.0 to 1.7.10 in /app
2022-07-12 15:33:31 +02:00
85df339e56 chore(deps): bump org.jetbrains.kotlin.android in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.0 to 1.7.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.0...v1.7.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 02:40:56 +00:00
d61ad44ebc chore(release): 3.4.7 2022-07-01 01:04:52 +02:00
ccb1eff749 chore(mui): migrate from mui/lab to mui/x-date-pickers 2022-07-01 01:04:03 +02:00
bfb48e3aa7 fix(mui): update mui datepickers to newer package 2022-07-01 01:01:27 +02:00
e2e08ad390 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-07-01 00:50:17 +02:00
f0dda06af3 Merge pull request #932 from AmruthPillai/i18n_main
New Crowdin updates
2022-07-01 00:50:10 +02:00
4c4e77e21d New translations common.json (Portuguese) 2022-07-01 00:48:52 +02:00
f364ae8929 New translations common.json (Indonesian) 2022-07-01 00:48:49 +02:00
b52f292d89 New translations dashboard.json (Indonesian) 2022-07-01 00:48:32 +02:00
8cac7f907c New translations modals.json (Hebrew) 2022-07-01 00:48:25 +02:00
a18a60679f New translations builder.json (Hebrew) 2022-07-01 00:48:04 +02:00
5cc6a81b8c New translations landing.json (Hebrew) 2022-07-01 00:48:02 +02:00
6ff212b698 New translations dashboard.json (Hebrew) 2022-07-01 00:48:00 +02:00
56bcec5196 chore(deps): update dependencies across all projects 2022-07-01 00:46:41 +02:00
12019f90e9 Merge pull request #928 from ravindra3003/main
UpdateTutorial
2022-07-01 00:27:29 +02:00
7e6e69ed49 Update create-resume.mdx 2022-06-23 13:14:16 +05:30
a09a945e17 Update create-account.mdx 2022-06-23 13:12:21 +05:30
df714dc8de Update create-account.mdx 2022-06-22 15:47:01 +05:30
28b63ef0c7 Update create-account.mdx 2022-06-22 15:16:45 +05:30
1b594dac61 Update create-resume.mdx 2022-06-22 15:00:18 +05:30
dd34a30ee0 Update create-account.mdx 2022-06-22 12:09:18 +05:30
0af398ceed Update create-account.mdx 2022-06-22 11:45:45 +05:30
04abd2cacc Update create-account.mdx 2022-06-22 11:37:15 +05:30
a037a091e7 chore(release): 3.4.6 2022-06-19 20:55:23 +02:00
f3a4c17cb4 correct versions 2022-06-19 20:55:14 +02:00
f06f7ad2e5 chore(release): 3.6.2 2022-06-19 20:52:34 +02:00
aab2e5c8a9 correct versions 2022-06-19 20:52:24 +02:00
4318dbe762 add languages 2022-06-19 20:51:10 +02:00
ae3ff274ee updates to app 2022-06-19 20:44:28 +02:00
164403c495 chore(release): 3.4.6 2022-06-19 20:44:04 +02:00
8595c92fb7 Merge pull request #906 from dvd741-a/main
Add File based Storage toggle for Photos
2022-06-18 16:53:05 +02:00
8f75f32f88 Merge pull request #903 from AmruthPillai/i18n_main
New Crowdin updates
2022-06-18 16:52:54 +02:00
0d44189a5f Merge branch 'main' into i18n_main 2022-06-18 16:51:51 +02:00
cd16a6d360 Merge pull request #902 from Mhnramin/main
New translation for Bahasa (Indonesia)
2022-06-18 16:49:25 +02:00
7b795bfaa4 Merge pull request #914 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.0
chore(deps): bump org.jetbrains.kotlin.android from 1.6.21 to 1.7.0 in /app
2022-06-18 16:49:08 +02:00
8f78d47661 Change Dockerfile to include Volume 2022-06-18 14:21:10 +02:00
0b5e5a2ece New translations common.json (Hebrew) 2022-06-14 03:09:35 +05:30
9eade9514c chore(deps): bump org.jetbrains.kotlin.android in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.6.21 to 1.7.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.0/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.6.21...v1.7.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 02:22:25 +00:00
d744e06e96 New translations builder.json (Persian) 2022-06-07 23:23:40 +05:30
9657c199d2 New translations common.json (Persian) 2022-06-07 23:23:39 +05:30
2dbe737b73 New translations dashboard.json (Persian) 2022-06-07 23:23:38 +05:30
f624699efa New translations landing.json (Persian) 2022-06-07 23:23:37 +05:30
e46f473754 New translations modals.json (Persian) 2022-06-07 23:23:36 +05:30
767f4bf4bc Correction 2022-06-06 15:41:08 +02:00
1c5d025c15 Version 2022-06-06 15:26:37 +02:00
8de8d89290 File Storage toggle 2022-06-06 15:15:39 +02:00
83662122a5 Changes 2022-06-06 02:31:44 +02:00
126482a760 chore(release): 3.6.1 2022-06-06 01:36:29 +02:00
b04c22a27b Changes 2022-06-06 01:35:46 +02:00
63f88a3d1c Changes 2022-06-06 01:34:58 +02:00
bd519db14f chore(release): 3.6.0 2022-06-06 01:32:56 +02:00
a49aa42176 New translations modals.json (Indonesian) 2022-06-05 12:49:38 +05:30
1a382db4d9 New translations builder.json (Indonesian) 2022-06-05 12:49:36 +05:30
c68f75dc8c New translations common.json (Indonesian) 2022-06-05 12:49:35 +05:30
c12de0c013 New translations dashboard.json (Indonesian) 2022-06-05 12:49:34 +05:30
4cafaf306a New translations landing.json (Indonesian) 2022-06-05 12:49:33 +05:30
0238cf18a5 New translation for Bahasa (Indonesia) 2022-06-05 08:16:49 +08:00
2f6072a7ba Merge pull request #889 from AmruthPillai/i18n_main
New Crowdin updates
2022-05-24 08:25:16 +05:30
55dd2c5925 Merge pull request #879 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.0.0
chore(deps): bump docker/build-push-action from 2.10.0 to 3.0.0
2022-05-24 08:25:05 +05:30
a3e25f87fa Merge pull request #878 from AmruthPillai/dependabot/github_actions/docker/login-action-2.0.0
chore(deps): bump docker/login-action from 1.14.1 to 2.0.0
2022-05-24 08:24:56 +05:30
9e82ea11c3 chore(release): 3.4.5 2022-05-24 08:23:03 +05:30
62fd63e41f fix(i18n): fix language mismatch in exported pdf 2022-05-24 08:21:03 +05:30
b91c175352 New translations builder.json (Arabic) 2022-05-18 19:51:52 +05:30
898e2314fc New translations builder.json (Arabic) 2022-05-18 18:39:53 +05:30
bca2aa2fe5 chore(deps): bump docker/build-push-action from 2.10.0 to 3.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.10.0 to 3.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:51:05 +00:00
427fdb717a chore(deps): bump docker/login-action from 1.14.1 to 2.0.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.14.1 to 2.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.14.1...v2.0.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:51:02 +00:00
ee5b0187e2 docs(i18n): add Hungarian language to docs readme 2022-05-02 09:01:50 +02:00
94d05f33b4 chore(release): v3.4.4 2022-05-02 08:59:36 +02:00
35fe4e2774 feat(i18n): add Hungrarian (Magyar) language 2022-05-02 08:58:25 +02:00
317901a4d2 Merge pull request #870 from AmruthPillai/i18n_main
New Crowdin updates
2022-05-02 08:50:01 +02:00
350ffcbc43 New translations builder.json (Odia) 2022-05-02 08:47:55 +02:00
2c074a96c8 New translations builder.json (Kannada) 2022-05-02 08:47:54 +02:00
79f140b2d0 New translations builder.json (Malayalam) 2022-05-02 08:47:53 +02:00
649c655ad5 New translations builder.json (Hindi) 2022-05-02 08:47:52 +02:00
d5284a90d1 New translations builder.json (Bengali) 2022-05-02 08:47:51 +02:00
bd18c53ab8 New translations builder.json (Tamil) 2022-05-02 08:47:50 +02:00
704c1ab7d4 New translations builder.json (Vietnamese) 2022-05-02 08:47:35 +02:00
1dbd7f221e New translations builder.json (Chinese Simplified) 2022-05-02 08:47:34 +02:00
e1a47ffbe2 New translations modals.json (Hungarian) 2022-05-02 08:47:33 +02:00
2add629970 New translations modals.json (Czech) 2022-05-02 08:47:31 +02:00
a48fcd9c97 New translations landing.json (Hungarian) 2022-05-02 08:47:29 +02:00
df7b00cb2c New translations builder.json (Turkish) 2022-05-02 08:47:28 +02:00
27fc939101 New translations builder.json (Portuguese) 2022-05-02 08:47:26 +02:00
7c574d17e4 New translations builder.json (Polish) 2022-05-02 08:47:25 +02:00
86a105f5a5 New translations builder.json (Dutch) 2022-05-02 08:47:25 +02:00
327bcc2b32 New translations builder.json (Italian) 2022-05-02 08:47:24 +02:00
a6cbd85010 New translations builder.json (Greek) 2022-05-02 08:47:23 +02:00
371b820923 New translations builder.json (German) 2022-05-02 08:47:22 +02:00
1d47fd0267 New translations builder.json (Danish) 2022-05-02 08:47:21 +02:00
276fc95bb0 New translations builder.json (Czech) 2022-05-02 08:47:20 +02:00
34c8861321 New translations builder.json (Arabic) 2022-05-02 08:47:19 +02:00
780b782579 New translations builder.json (French) 2022-05-02 08:47:18 +02:00
9daa99fd5b New translations builder.json (Spanish) 2022-05-02 08:47:16 +02:00
76b3aa29cf New translations landing.json (Czech) 2022-05-02 08:47:16 +02:00
25d4913fab New translations common.json (Hungarian) 2022-05-02 08:47:15 +02:00
0efeff3a4f New translations common.json (Czech) 2022-05-02 08:47:13 +02:00
f56089925e New translations builder.json (Swedish) 2022-05-02 08:47:12 +02:00
5afae08f20 New translations builder.json (Hungarian) 2022-05-02 08:47:11 +02:00
4bf114dfd6 New translations dashboard.json (Hungarian) 2022-05-02 08:47:09 +02:00
23a3c2e624 New translations dashboard.json (Czech) 2022-05-02 08:47:07 +02:00
71862f4354 New translations builder.json (Russian) 2022-05-01 15:42:24 +02:00
6861c0f0fa chore(release): 3.4.3 2022-05-01 08:03:37 +02:00
9a18e74b90 revert(react): downgrade back to 17.0.2 due to lack of support 2022-05-01 08:03:22 +02:00
4dd1b70079 remove linux/arm64 builds, failing temporarily 2022-04-30 13:39:23 +02:00
f9580fe716 chore(release): 3.4.2 2022-04-30 13:19:34 +02:00
3545f7939f remove linux/arm64 for server, as playwright does not support it 2022-04-30 13:19:08 +02:00
9caad3bc0b chore(release): 3.4.1 2022-04-30 13:01:59 +02:00
5bdb92b1cf fix(typeorm): update typeorm to latest 0.2.x for secpatch 2022-04-30 13:01:45 +02:00
87d381fe8e feat(all): upgrade to v3.4.0 2022-04-30 12:58:17 +02:00
ccfb4d3cb0 Merge pull request #867 from Tomiiwa/Table-of-Contents
[DOC] Added Table of Contents to ReadMe
2022-04-30 09:11:08 +02:00
763074a86c Added Table of Contents to ReadMe 2022-04-29 16:41:52 +01:00
0f46895711 Merge pull request #861 from AmruthPillai/dependabot/github_actions/actions/checkout-3.0.2
chore(deps): bump actions/checkout from 3.0.1 to 3.0.2
2022-04-25 09:34:20 +02:00
aa736af0f5 Merge pull request #858 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.6.21
chore(deps): bump org.jetbrains.kotlin.android from 1.6.20 to 1.6.21 in /app
2022-04-25 09:33:53 +02:00
1d9056f935 chore(deps): bump actions/checkout from 3.0.1 to 3.0.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:11:03 +00:00
9cadd603f3 chore(deps): bump org.jetbrains.kotlin.android in /app
Bumps org.jetbrains.kotlin.android from 1.6.20 to 1.6.21.

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:08:55 +00:00
b7b62d7bd0 Merge pull request #853 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-24 08:06:24 +02:00
820e6c90d3 New translations modals.json (Greek) 2022-04-22 15:06:52 +02:00
ea642d1b60 New translations landing.json (Greek) 2022-04-22 15:06:51 +02:00
ec006779a8 New translations common.json (Greek) 2022-04-22 15:06:47 +02:00
515be23c44 New translations dashboard.json (Greek) 2022-04-22 15:06:46 +02:00
c11aec8b44 Merge pull request #851 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-22 07:14:41 +02:00
3c2147e72c New translations landing.json (Swedish) 2022-04-21 21:01:56 +02:00
15a35e6243 New translations modals.json (Swedish) 2022-04-21 21:01:53 +02:00
d53a5a492c New translations landing.json (Swedish) 2022-04-21 20:00:31 +02:00
0810e5ae6a Merge pull request #842 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-20 09:21:40 +02:00
881b183db5 Merge pull request #844 from AmruthPillai/dependabot/github_actions/actions/checkout-3.0.1
chore(deps): bump actions/checkout from 3.0.0 to 3.0.1
2022-04-20 09:21:32 +02:00
15cea02872 Delete close-stale.yml 2022-04-19 06:45:45 +02:00
c195561df0 Merge pull request #843 from augustocardoso07/fix/page-counter
Fix page counter in the center section
2022-04-18 18:15:24 +02:00
fc725cfc0c chore(deps): bump actions/checkout from 3.0.0 to 3.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 02:30:45 +00:00
9f54516e8c Fix page counter in the center section 2022-04-17 21:09:55 -03:00
68a4cd9635 New translations builder.json (Swedish) 2022-04-17 19:42:51 +02:00
ff01802f2f New translations common.json (Swedish) 2022-04-17 19:42:49 +02:00
bb900bc2e1 New translations dashboard.json (Swedish) 2022-04-17 19:42:48 +02:00
459f82b66b Merge pull request #828 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-11 07:48:37 +02:00
4b382243e4 New translations modals.json (Odia) 2022-04-10 12:17:28 +02:00
af074085d1 New translations landing.json (Odia) 2022-04-10 12:17:25 +02:00
0c8c872668 New translations dashboard.json (Odia) 2022-04-10 12:17:25 +02:00
ddb29bb40d New translations common.json (Odia) 2022-04-10 12:17:23 +02:00
aecb627ab7 New translations builder.json (Odia) 2022-04-10 12:17:22 +02:00
b8cd53cb59 chore(release): 3.3.4 2022-04-09 22:02:26 +02:00
e61f6153c3 Merge pull request #823 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-09 22:01:54 +02:00
386e8ab902 Merge pull request #827 from AmruthPillai/compose-envs
Remove YAML anchors and prefer Docker Compose Environment Arrays
2022-04-09 22:01:41 +02:00
5e8f02e3ca add local build context comment in docker-compose 2022-04-09 21:47:41 +02:00
f219562e72 style(eslint): client/next: add specific rule for no-html-link-for-pages 2022-04-09 21:25:19 +02:00
29d94dfc14 ci(docker): remove yaml anchors in favor of environment array in docker-compose
fix #825, fix #824, fix #820
2022-04-09 21:21:45 +02:00
622f5fc28c ci(github-actions): update key tags for GitHub action to build docker image 2022-04-09 09:33:44 +02:00
647f01e25c Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-04-09 09:32:20 +02:00
5a79c0e5c2 chore(release): 3.3.3 2022-04-09 09:32:04 +02:00
2a4c298572 Merge pull request #819 from martadinata666/combine-tags
combine-tags
2022-04-09 09:30:46 +02:00
1e59f73f79 feat(profile): add XING profile icon
fix #821
2022-04-09 09:29:51 +02:00
feb911aea0 feat(s3): implement non-ephemeral storage through S3/DO Spaces 2022-04-09 09:28:08 +02:00
d0863d68c6 chore(release): 3.3.3 2022-04-09 09:26:34 +02:00
447d9b3ca1 New translations builder.json (Greek) 2022-04-08 19:35:17 +02:00
86e66eb6a0 combine-tags 2022-04-08 19:08:01 +07:00
b2c9515a63 Create SECURITY.md 2022-04-08 10:37:24 +02:00
db04c5caee update CHANGELOG.md 2022-04-08 10:34:27 +02:00
1162 changed files with 168771 additions and 42885 deletions

View File

@ -1,5 +0,0 @@
ARG VARIANT="16-bullseye"
FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT}
RUN curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm

View File

@ -1,27 +0,0 @@
{
"name": "Node.js",
"build": {
"dockerfile": "Dockerfile",
"args": { "VARIANT": "16-bullseye" }
},
// Set *default* container specific settings.json values on container create.
"settings": {},
// Add the IDs of extensions you want installed when the container is created.
"extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "lokalise.i18n-ally"],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [80, 5432],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pnpm install",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "node",
"features": {
"docker-from-docker": "latest"
}
}

View File

@ -1,21 +1,62 @@
# Build Artifacts
# Compiled Output
dist
.next
# IDEs
.vscode
# Project Metadata
README.md
CHANGELOG.md
tmp
/out-tsc
# Project Dependencies
.git
.gitignore
node_modules
# Docker
compose*.yml
Dockerfile
.dockerignore
docker-compose.yml
# Android App
/app
# IDEs and Editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vs/*
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# Miscellaneous
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# System Files
.DS_Store
Thumbs.db
.editorconfig
.eslint*
# Generated Files
.nx
.swc
fly.toml
stats.html
tools/compose/*
tools/scripts/*
# Environment Variables
*.env*
!.env.example
# Lingui Compiled Messages
apps/client/src/locales/_build/
apps/client/src/locales/*/messages.mjs

View File

@ -2,7 +2,11 @@ root = true
[*]
charset = utf-8
indent_size = 2
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false

View File

@ -1,28 +1,81 @@
# Shared
TZ=UTC
PUBLIC_URL=http://localhost
PUBLIC_SERVER_URL=http://localhost/api
PUBLIC_GOOGLE_CLIENT_ID=
# Environment
NODE_ENV=development
# Database
# Ports
PORT=3000
# URLs
# These URLs must reference a publicly accessible domain or IP address, not a docker container ID (depending on your compose setup)
PUBLIC_URL=http://localhost:3000
STORAGE_URL=http://localhost:9000/default # default is the bucket name specified in the STORAGE_BUCKET variable
# Database (Prisma/PostgreSQL)
# This can be swapped out to use any other database, like MySQL
# Note: This is used only in the compose.yml file
POSTGRES_PORT=5432
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
# Server
SECRET_KEY=
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_SSL_CERT=
JWT_SECRET=
JWT_EXPIRY_TIME=604800
PUBLIC_GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_API_KEY=
SENDGRID_API_KEY=
SENDGRID_FORGOT_PASSWORD_TEMPLATE_ID=
SENDGRID_FROM_NAME=
SENDGRID_FROM_EMAIL=
# Database (Prisma/PostgreSQL)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres?schema=public
# Flags
PUBLIC_FLAG_DISABLE_SIGNUPS=false
# Authentication Secrets
# generated with `openssl rand -base64 64`
ACCESS_TOKEN_SECRET=access_token_secret
REFRESH_TOKEN_SECRET=refresh_token_secret
# Chrome Browser (for printing)
# generated with `openssl rand -hex 32`
CHROME_PORT=8080
CHROME_TOKEN=chrome_token
CHROME_URL=ws://localhost:8080
# Launch puppeteer with flag to ignore https errors
# CHROME_IGNORE_HTTPS_ERRORS=true
# Mail Server (for e-mails)
# For testing, you can use https://ethereal.email/create
MAIL_FROM=noreply@localhost
# SMTP_URL=smtp://username:password@smtp.ethereal.email:587
# Storage
STORAGE_ENDPOINT=localhost
STORAGE_PORT=9000
STORAGE_REGION=us-east-1
STORAGE_BUCKET=default
STORAGE_ACCESS_KEY=minioadmin
STORAGE_SECRET_KEY=minioadmin
STORAGE_USE_SSL=false
STORAGE_SKIP_BUCKET_CHECK=false
# Nx Cloud (Optional)
# NX_CLOUD_ACCESS_TOKEN=
# Crowdin (Optional)
# CROWDIN_PROJECT_ID=
# CROWDIN_PERSONAL_TOKEN=
# Feature Flags (Optional)
# DISABLE_SIGNUPS=false
# DISABLE_EMAIL_AUTH=false
# GitHub (OAuth, Optional)
# GITHUB_CLIENT_ID=
# GITHUB_CLIENT_SECRET=
# GITHUB_CALLBACK_URL=http://localhost:5173/api/auth/github/callback
# Google (OAuth, Optional)
# GOOGLE_CLIENT_ID=
# GOOGLE_CLIENT_SECRET=
# GOOGLE_CALLBACK_URL=http://localhost:5173/api/auth/google/callback
# OpenID (Optional)
# VITE_OPENID_NAME=
# OPENID_AUTHORIZATION_URL=
# OPENID_CALLBACK_URL=http://localhost:5173/api/auth/openid/callback
# OPENID_CLIENT_ID=
# OPENID_CLIENT_SECRET=
# OPENID_ISSUER=
# OPENID_SCOPE=openid profile email
# OPENID_TOKEN_URL=
# OPENID_USER_INFO_URL=

1
.eslintignore Normal file
View File

@ -0,0 +1 @@
node_modules

View File

@ -1,37 +1,102 @@
{
"root": true,
"ignorePatterns": ["/app"],
"parser": "@typescript-eslint/parser",
"extends": ["plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"],
"plugins": ["@typescript-eslint/eslint-plugin", "simple-import-sort", "unused-imports"],
"rules": {
// TypeScript ESLint
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/interface-name-prefix": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
// Simple Import Sort
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
// Unused Imports
"no-unused-vars": "off",
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"warn",
{
"vars": "all",
"varsIgnorePattern": "^_",
"args": "none",
"argsIgnorePattern": "^_"
}
]
},
"ignorePatterns": ["**/*"],
"plugins": ["@nx"],
"overrides": [
{
"files": ["*.js"],
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"extends": ["plugin:prettier/recommended"],
"plugins": ["simple-import-sort", "unused-imports"],
"rules": {
"@typescript-eslint/no-var-requires": "off"
// eslint
"no-console": "error",
"no-return-await": "off",
// simple-import-sort
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
// unused-imports
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"warn",
{
"vars": "all",
"varsIgnorePattern": "^_",
"args": "after-used",
"argsIgnorePattern": "^_"
}
],
// nx
"@nx/enforce-module-boundaries": [
"error",
{
"allowCircularSelfDependency": true,
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
],
// prettier
"prettier/prettier": [
"warn",
{
"endOfLine": "auto"
}
]
}
},
{
"files": ["*.ts", "*.tsx"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": "latest",
"project": ["tsconfig.*?.json"]
},
"extends": [
"plugin:@nx/typescript",
"plugin:@typescript-eslint/strict-type-checked",
"plugin:@typescript-eslint/stylistic-type-checked",
"plugin:unicorn/recommended"
],
"plugins": ["@typescript-eslint", "unicorn"],
"rules": {
// typescript-eslint
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/return-await": "off",
"@typescript-eslint/no-unsafe-return": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-misused-promises": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/restrict-template-expressions": "off",
"@typescript-eslint/no-redundant-type-constituents": "off",
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
// unicorn
"unicorn/no-null": "off",
"unicorn/prevent-abbreviations": "off",
"unicorn/prefer-string-replace-all": "off",
"unicorn/prefer-structured-clone": "off"
}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nx/javascript"],
"rules": {
// eslint
"no-console": "warn",
"no-unused-vars": "off"
}
}
]

3
.github/FUNDING.yml vendored
View File

@ -1 +1,2 @@
custom: https://paypal.me/RajaRajanA
github: AmruthPillai
open_collective: reactive-resume

View File

@ -1,36 +0,0 @@
---
name: Bug Report
about: Create a report to help improve
title: "[BUG] "
labels: bug
assignees: ''
---
**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
**Product Flavor**
- [ ] Managed (https://rxresu.me)
- [ ] Self Hosted
**To Reproduce**
<!-- Steps to reproduce the behavior: -->
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Desktop (please complete the following information):**
- OS: <!--[e.g. iOS]-->
- Browser <!--[e.g. chrome, safari]-->
- Version <!--[e.g. 22]-->
**Additional context**
<!-- Add any other context about the problem here. -->

98
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@ -0,0 +1,98 @@
name: 🐞 Bug Report
description: Create a bug report to help improve Reactive Resume
title: "[Bug] <title>"
labels: [bug, v4, needs triage]
assignees: "AmruthPillai"
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: Yes, I have searched the existing issues and none of them match my problem.
required: true
- type: dropdown
id: variant
attributes:
label: Product Variant
description: What variant of Reactive Resume are you using?
options:
- Cloud (https://rxresu.me)
- Self-Hosted
validations:
required: true
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Detailed steps to reproduce the behavior, so that it can be easily diagnosed.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: false
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
validations:
required: false
- type: dropdown
id: template
attributes:
label: What template are you using?
description: Leave blank if the issue applies to all templates, or is not template-specific.
multiple: false
options:
- Azurill
- Bronzor
- Chikorita
- Ditto
- Gengar
- Glalie
- Kakuna
- Leafish
- Nosepass
- Onyx
- Pikachu
- Rhyhorn
validations:
required: false
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false

View File

@ -1,20 +0,0 @@
---
name: Feature Request
about: Suggest an idea for this project
title: "[FEATURE] "
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->

View File

@ -0,0 +1,23 @@
name: ✨ Feature Request
description: Suggest an feature or idea that you would like to see in Reactive Resume
title: "[Feature] <title>"
labels: [enhancement, v4, needs triage]
assignees: "AmruthPillai"
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this feature?
description: Please search to see if an issue already exists for the feature you requested.
options:
- label: Yes, I have searched the existing issues and it doesn't exist.
required: true
- type: textarea
attributes:
label: Feature Description
description: A concise description of what feature you would like to see in Reactive Resume.
validations:
required: true

View File

@ -1,22 +0,0 @@
version: 2
updates:
- package-ecosystem: 'docker'
directory: '/server'
schedule:
interval: 'weekly'
- package-ecosystem: 'docker'
directory: '/client'
schedule:
interval: 'weekly'
- package-ecosystem: 'gradle'
directory: '/app'
schedule:
interval: 'weekly'
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'

View File

@ -1,16 +0,0 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '0 0 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5.0.0
with:
stale-pr-message: 'This PR is stale because it has been open for 30 days with no activity. Remove the stale label or comment on this PR, otherwise it would be closed in 5 days.'
stale-issue-message: 'This issue is stale because it has been open for 30 days with no activity. Remove the stale label or comment on this issue, otherwise it would be closed in 5 days.'
days-before-stale: 30
days-before-close: 5

View File

@ -1,21 +0,0 @@
name: Deploy Latest Version on DigitalOcean
on:
workflow_run:
workflows:
- Build and Push Docker Image
types:
- completed
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Install DigitalOcean CLI
uses: digitalocean/action-doctl@v2.1.1
with:
token: ${{ secrets.DIGITALOCEAN_TOKEN }}
- name: Create Deployment with Latest Version
run: doctl apps create-deployment ${{ secrets.DIGITALOCEAN_APP_ID }} --wait --force-rebuild

View File

@ -1,148 +0,0 @@
name: Build and Push Docker Image
on:
release:
types: [published]
jobs:
docker_client:
name: Docker (Client)
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
- id: version
name: Get Version
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1.2.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1.6.0
- name: Login to Docker
uses: docker/login-action@v1.14.1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push Client Image
uses: docker/build-push-action@v2.10.0
with:
context: .
push: true
file: client/Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
amruthpillai/reactive-resume:client-latest
amruthpillai/reactive-resume:client-${{ steps.version.outputs.tag }}
docker_server:
name: Docker (Server)
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
- id: version
name: Get Version
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1.2.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1.6.0
- name: Login to Docker
uses: docker/login-action@v1.14.1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push Server Image
uses: docker/build-push-action@v2.10.0
with:
context: .
push: true
file: server/Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
amruthpillai/reactive-resume:server-latest
amruthpillai/reactive-resume:server-${{ steps.version.outputs.tag }}
github_client:
name: GitHub (Client)
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
- id: version
name: Get Version
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1.2.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1.6.0
- name: Login to GitHub Container Registry
uses: docker/login-action@v1.14.1
with:
registry: ghcr.io
username: $GITHUB_REPOSITORY_OWNER
password: ${{ secrets.GH_TOKEN }}
- name: Build and Push Client Image
uses: docker/build-push-action@v2.10.0
with:
context: .
push: true
file: client/Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/amruthpillai/reactive-resume:client-latest
ghcr.io/amruthpillai/reactive-resume:client-${{ steps.version.outputs.tag }}
github_server:
name: GitHub (Server)
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
- id: version
name: Get Version
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1.2.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1.6.0
- name: Login to GitHub Container Registry
uses: docker/login-action@v1.14.1
with:
registry: ghcr.io
username: $GITHUB_REPOSITORY_OWNER
password: ${{ secrets.GH_TOKEN }}
- name: Build and Push Server Image
uses: docker/build-push-action@v2.10.0
with:
context: .
push: true
file: server/Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/amruthpillai/reactive-resume:server-latest
ghcr.io/amruthpillai/reactive-resume:server-${{ steps.version.outputs.tag }}

48
.github/workflows/lint-test-build.yml vendored Normal file
View File

@ -0,0 +1,48 @@
name: Lint, Test & Build
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
with:
fetch-depth: 2
- name: Setup pnpm
uses: pnpm/action-setup@v4.0.0
- name: Setup Node.js
uses: actions/setup-node@v4.1.0
with:
cache: "pnpm"
node-version: 22
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm run lint
- name: Format
run: pnpm run format
- name: Test
run: pnpm run test
- name: Build
run: pnpm run build

View File

@ -0,0 +1,167 @@
name: Publish Docker Image
on:
workflow_dispatch:
push:
tags:
- "*"
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
env:
IMAGE: amruthpillai/reactive-resume
jobs:
build:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
strategy:
matrix:
platform:
- linux/amd64
- linux/arm64
steps:
- name: Checkout Repository
uses: actions/checkout@v4.1.4
- name: Extract version from package.json
id: version
run: echo "version=$(jq -r '.version' package.json)" >> "$GITHUB_OUTPUT"
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0
- name: Login to Docker Hub
uses: docker/login-action@v3.1.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to GitHub Container Registery
uses: docker/login-action@v3.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.3.0
- name: Extract Docker Metadata
id: meta
uses: docker/metadata-action@v5.5.1
with:
tags: type=semver,pattern={{version}},prefix=v,value=${{ steps.version.outputs.version }}
images: |
${{ env.IMAGE }}
ghcr.io/${{ env.IMAGE }}
- name: Prepare a unique name for Artifacts
id: artifact_name
run: |
name=$(echo -n "${{ matrix.platform }}" | sed -e 's/[ \t:\/\\"<>|*?]/-/g' -e 's/--*/-/g')
echo "name=$name" >> "$GITHUB_OUTPUT"
- name: Build and Push by Digest
uses: docker/build-push-action@v5.3.0
id: build
with:
context: .
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.IMAGE }},push-by-digest=true,name-canonical=true,push=true
build-args: |
NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Export Digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload Digest
uses: actions/upload-artifact@v4.3.3
with:
name: digests-${{ steps.artifact_name.outputs.name }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
merge:
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Checkout Repository
uses: actions/checkout@v4.1.4
- name: Download Digest
uses: actions/download-artifact@v4.1.7
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true
- name: Login to Docker Hub
uses: docker/login-action@v3.1.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to GitHub Container Registery
uses: docker/login-action@v3.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.3.0
- name: Extract Docker Metadata
id: meta
uses: docker/metadata-action@v5.5.1
with:
tags: type=semver,pattern={{version}},prefix=v,value=${{ needs.build.outputs.version }}
images: |
${{ env.IMAGE }}
ghcr.io/${{ env.IMAGE }}
- name: Create Docker Manifest List and Push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.IMAGE }}@sha256:%s ' *)
- name: Inspect Image
run: |
docker buildx imagetools inspect ${{ env.IMAGE }}:${{ steps.meta.outputs.version }}
- name: Update Repository Description
uses: peter-evans/dockerhub-description@v4.0.0
with:
repository: ${{ github.repository }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Deploy the latest image on rxresu.me
run: curl -kX POST ${{ secrets.SERVICE_WEBHOOK }}
- name: Inform about the release on Discord
uses: sarisia/actions-status-discord@v1.14.3
if: always()
with:
username: ReleaseBot
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
title: "Release `${{ steps.meta.outputs.version }}`"
description: "A new version of Reactive Resume just dropped! 🚀"
url: "https://github.com/AmruthPillai/Reactive-Resume"

View File

@ -0,0 +1,31 @@
name: Sync Crowdin Translations
on:
workflow_dispatch:
schedule:
- cron: 0 0 * * * # everyday at midnight (UTC)
jobs:
sync:
if: github.repository == 'AmruthPillai/Reactive-Resume'
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4.1.1
- name: Sync Translations
uses: crowdin/github-action@v1.15.2
with:
upload_sources: true
upload_translations: true
download_translations: true
create_pull_request: true
localization_branch_name: "l10n"
pull_request_base_branch_name: "main"
pull_request_title: "New Translations from Crowdin"
pull_request_body: "You've got new translations to be merged into the app from contributors on Crowdin.\n\n_This pull request was automatically created by the [Crowdin Action](https://github.com/marketplace/actions/crowdin-action)._"
env:
GITHUB_TOKEN: ${{ github.token }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

55
.gitignore vendored
View File

@ -1,10 +1,53 @@
# Environment Variables
.env
.env.*
!.env.example
# Compiled Output
dist
tmp
/out-tsc
# Project Dependencies
node_modules
# macOS
.DS_Store
# IDEs and Editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vs/*
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# Miscellaneous
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# System Files
.DS_Store
Thumbs.db
# Generated Files
.nx
.swc
.turbo
fly.toml
stats.html
# Environment Variables
*.env*
!.env.example
# Lingui Compiled Messages
apps/client/src/locales/_build/
apps/client/src/locales/*/messages.*js

View File

@ -1,6 +0,0 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
pnpm install
pnpm run lint
pnpm run format

16
.ncurc.json Normal file
View File

@ -0,0 +1,16 @@
{
"$schema": "https://raw.githubusercontent.com/raineorshine/npm-check-updates/main/src/types/RunOptions.json",
"upgrade": true,
"target": "minor",
"install": "always",
"packageManager": "pnpm",
"reject": [
"nx",
"eslint",
"@nx/*",
"@swc/*",
"@swc-node/*",
"@reactive-resume/*",
"eslint-plugin-unused-imports"
]
}

3
.npmrc Normal file
View File

@ -0,0 +1,3 @@
auto-install-peers=true
enable-pre-post-scripts=true
strict-peer-dependencies=false

1
.nvmrc
View File

@ -1 +0,0 @@
lts/*

View File

@ -1,32 +1,7 @@
# Schema
schema/dist
# Server
server/dist
# Client
client/.next
client/public/__ENV.js
# IDEs
.vscode
# Project Metadata
LICENSE
README.md
CHANGELOG.md
# Project Dependencies
node_modules
# Docker
Dockerfile
.dockerignore
docker-compose.yml
# Android App
/app
# Docs
docs/build
docs/.docusaurus
/dist
/coverage
/.nx/cache
stats.html
pnpm-lock.yaml
compose-dev.yml
compose.yml

View File

@ -1,4 +1,6 @@
{
"printWidth": 120,
"singleQuote": true
"printWidth": 100,
"endOfLine": "auto",
"plugins": ["prettier-plugin-tailwindcss"],
"tailwindFunctions": ["cn", "cva"]
}

View File

@ -1,3 +1,3 @@
{
"recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "lokalise.i18n-ally"]
"recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
}

26
.vscode/launch.json vendored
View File

@ -1,26 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Debug: Server",
"port": 9229,
"restart": true,
"stopOnEntry": false,
"protocol": "inspector"
},
{
"name": "Debug: Client",
"type": "node-terminal",
"request": "launch",
"command": "pnpm run dev:client",
"console": "integratedTerminal",
"serverReadyAction": {
"pattern": "started server on .+, url: (https?://.+)",
"uriFormat": "%s",
"action": "debugWithChrome"
}
}
]
}

28
.vscode/settings.json vendored
View File

@ -1,25 +1,9 @@
{
"css.validate": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.wordWrap": "on",
"eslint.workingDirectories": [
"schema",
"client",
"server"
"i18n-ally.localesPaths": ["apps/client/src/locales"],
"tailwindCSS.experimental.classRegex": [
["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"],
["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
],
"i18n-ally.enabledFrameworks": [
"react"
],
"i18n-ally.keystyle": "nested",
"i18n-ally.localesPaths": [
"client/public/locales"
],
"i18n-ally.namespace": true,
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
"i18n-ally.sortKeys": true,
"scss.validate": false
}
"typescript.tsdk": "node_modules/typescript/lib"
}

View File

@ -1,219 +1,19 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### Whats changed from v3 to v4?
### [3.3.2](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.3.1...v3.3.2) (2022-04-08)
**The entire app has been rebuilt and reimagined from the ground up.**
The **user interface** has been greatly streamlined to prioritise your content and resume. The design of templates has also undergone a major overhaul. Previously, we utilised TailwindCSS for creating templates, but now you can rely on CSS (styled-components) to build any design you prefer. With this change, I hope to offer a **much wider variety of templates** compared to the previous version.
### Bug Fixes
When it comes to features, there are many to mention, but some highlights include the **ability to use your own OpenAI API key** (stored on your browser) and leverage GPTs to enhance your resume writing skills. With this, you can improve your writing, correct spelling and grammar, and even adjust the tone of the text to be more confident or casual.
* **types/react:** downgrade to <18 ([fc77b54](https://github.com/AmruthPillai/Reactive-Resume/commit/fc77b548d8d61530b2d158ff83f088bed12d5080))
When you make your resume publicly available, you are provided with a link that you can share with potential recruiters and employers. This change allows you to **track the number of views or downloads your resume has received**, so you can stay informed about when someone has checked out your resume.
### [3.3.2](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.3.0...v3.3.1) (2022-04-08)
When it comes to **security**, you now have the option to protect your account with **two-factor authentication**. This means that whenever you log in to Reactive Resume, you will also need to enter a one-time code generated on your phone. This additional step ensures that only you have access to your account.
### Bug Fixes
From a **design** perspective, the motivation behind this is to ensure that Reactive Resume is taken more seriously and not perceived as just another subpar side-project, which is often associated with free software. My goal is to demonstrate that this is not the case, and that **free and open source software can be just as good**, if not better, than paid alternatives.
* **types/react:** downgrade to <18 ([fc77b54](https://github.com/AmruthPillai/Reactive-Resume/commit/fc77b548d8d61530b2d158ff83f088bed12d5080))
From a **self-hosting perspective**, it has never been simpler. Instead of running two separate services on your Docker (one for the client and one for the server) and struggling to establish communication between them, now you only need to pull a single image. Additionally, there are a few dependent services available on Docker (such as Postgres, Minio etc.) that you can also pull and have them all working together seamlessly.
### [3.3.1](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.3.0...v3.3.1) (2022-04-08)
## [3.3.0](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.11...v3.3.0) (2022-04-08)
### Features
* **upgrade:** changes to code to support new template ([1df7810](https://github.com/AmruthPillai/Reactive-Resume/commit/1df78100ca0667ce9b7834cf2c25384eb21c67c2))
### What's Changed
* New Crowdin updates by @AmruthPillai in https://github.com/AmruthPillai/Reactive-Resume/pull/791
* Bump org.jetbrains.kotlin.android from 1.6.10 to 1.6.20 in /app by @dependabot in https://github.com/AmruthPillai/Reactive-Resume/pull/812
* New Crowdin updates by @AmruthPillai in https://github.com/AmruthPillai/Reactive-Resume/pull/806
* A new template - Leafish by @klejejs in https://github.com/AmruthPillai/Reactive-Resume/pull/811
* Automatic multi-platform Docker image build by @schklom in https://github.com/AmruthPillai/Reactive-Resume/pull/817
### New Contributors
* @klejejs made their first contribution in https://github.com/AmruthPillai/Reactive-Resume/pull/811
* @schklom made their first contribution in https://github.com/AmruthPillai/Reactive-Resume/pull/817
### [3.2.11](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.10...v3.2.11) (2022-03-28)
### [3.2.10](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.9...v3.2.10) (2022-03-24)
### Features
* **i18n:** add portuguese (pt) language to i18n locales ([7f1c82c](https://github.com/AmruthPillai/Reactive-Resume/commit/7f1c82cd9185ebb44486a16132eb44d5c2fb747a))
### [3.2.9](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.8...v3.2.9) (2022-03-21)
### Features
* **i18n:** add nl and ru i18n locales to app ([03cbf22](https://github.com/AmruthPillai/Reactive-Resume/commit/03cbf22c9bee96cac8f228830b67b44529b7ecee))
### [3.2.8](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.7...v3.2.8) (2022-03-18)
### Features
* **client/theme:** add theme switcher to landing page ([8f5632c](https://github.com/AmruthPillai/Reactive-Resume/commit/8f5632c5ad0bc8a4b3028c2806365717fedd78c9))
* **flags:** introduce flags, disable_user_signups ([b6267d0](https://github.com/AmruthPillai/Reactive-Resume/commit/b6267d07ba2dcaed0da3946d136a0a9a01c441d5)), closes [#698](https://github.com/AmruthPillai/Reactive-Resume/issues/698)
* **i18n:** add Vietnamese language to i18n locales ([4390bcc](https://github.com/AmruthPillai/Reactive-Resume/commit/4390bccfb9764f2d2730ec3a124b7befb6792e9a))
### Bug Fixes
* **client/create-rename-slug:** fix slug accepting apostrophes and other special characters ([1facd2a](https://github.com/AmruthPillai/Reactive-Resume/commit/1facd2ad111cd9d990c808b3956d3915e8711acd)), closes [#706](https://github.com/AmruthPillai/Reactive-Resume/issues/706)
* **disable_user_signups:** hide create account link under flag ([80acfe9](https://github.com/AmruthPillai/Reactive-Resume/commit/80acfe97c74bfa05b719285b19144144f3f7c5ba))
### [3.2.7](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.6...v3.2.7) (2022-03-18)
### Features
* **i18n:** add Malayalam (മലയ) language to i18n locales ([3a2e62b](https://github.com/AmruthPillai/Reactive-Resume/commit/3a2e62be4c9acc14f17277c060cc9ea2c417a478))
### Bug Fixes
* **printer/i18n:** fix dates not showing up in resume language when printing ([90321e1](https://github.com/AmruthPillai/Reactive-Resume/commit/90321e1284409ab9442883c04a9b4c591d36f95d)), closes [#729](https://github.com/AmruthPillai/Reactive-Resume/issues/729)
### [3.2.6](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.5...v3.2.6) (2022-03-17)
### Features
* **client/auth/google:** disable google login/registration if GOOGLE_CLIENT_ID is not in ENV ([7f0ee40](https://github.com/AmruthPillai/Reactive-Resume/commit/7f0ee40af4acc7eb41514406ecee3218ace9e891)), closes [#724](https://github.com/AmruthPillai/Reactive-Resume/issues/724)
* **i18n:** add arabic language to i18n locale ([39fa6da](https://github.com/AmruthPillai/Reactive-Resume/commit/39fa6da5dd77ce2e12e81530fa18c2eac722c1f2))
### Bug Fixes
* **i18n:** add missing languages to dayjs date wrapper locales ([9e6dafc](https://github.com/AmruthPillai/Reactive-Resume/commit/9e6dafc8cada5c01559894905996b81004bedaec)), closes [#719](https://github.com/AmruthPillai/Reactive-Resume/issues/719)
* **json-export:** add mimeType and charset to JSON export ([b3ff780](https://github.com/AmruthPillai/Reactive-Resume/commit/b3ff7805cd856a52900d9acef0554867d8ce0b01)), closes [#726](https://github.com/AmruthPillai/Reactive-Resume/issues/726)
* **linkedin:** fix skill modal crashing when importing from linkedin ([a02b85b](https://github.com/AmruthPillai/Reactive-Resume/commit/a02b85b4bb1c4a1499aacddeac7bc59bcb1f7adb)), closes [#718](https://github.com/AmruthPillai/Reactive-Resume/issues/718)
### [3.2.5](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.4...v3.2.5) (2022-03-16)
### Features
* **i18n:** add danish, polish and turkish locales to i18n ([97e9432](https://github.com/AmruthPillai/Reactive-Resume/commit/97e9432d6bd887e666a3443fbfde9a92cef53965))
### Bug Fixes
* **client/templates:** fix text veering off of artboard in most templates ([b2f1fb3](https://github.com/AmruthPillai/Reactive-Resume/commit/b2f1fb3a5502988a49c5cd3e496d9d165f5c1792)), closes [#702](https://github.com/AmruthPillai/Reactive-Resume/issues/702)
### [3.2.4](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.3...v3.2.4) (2022-03-14)
### [3.2.3](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.2...v3.2.3) (2022-03-14)
### Features
* **client/import:** implement import json from reactive resume v2 ([42408ce](https://github.com/AmruthPillai/Reactive-Resume/commit/42408ce8c5ce55904854f9f6e0481889a01edfb8))
### [3.2.2](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.1...v3.2.2) (2022-03-14)
### Bug Fixes
* **client/skills:** make skill level optional ([02e396b](https://github.com/AmruthPillai/Reactive-Resume/commit/02e396bfdbf07ae75661f1e7e4e55060cacee7d0))
### [3.2.1](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.0...v3.2.1) (2022-03-14)
### Features
* **i18n:** add Chinese (Simplified) language to locales ([549363b](https://github.com/AmruthPillai/Reactive-Resume/commit/549363bbe5bdd781699dea9506bd4baedf5740d1))
### Bug Fixes
* **client/basics:** fix issue with overlapping photo filters on safari/webkit/iOS ([e6bda68](https://github.com/AmruthPillai/Reactive-Resume/commit/e6bda688ac3ba1c04e82721add92e755ea5386c3))
* **docker:** fix docker-compose for production grade deployments ([57f7edc](https://github.com/AmruthPillai/Reactive-Resume/commit/57f7edc13432a038c907afc6cb74b5182a9b2333))
## [3.2.0](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.1.4...v3.2.0) (2022-03-14)
### Features
* **i18n:** add Bengali, Italian and other languages ([21931bc](https://github.com/AmruthPillai/Reactive-Resume/commit/21931bc324b5e2440baaaaa2e52a93b4f2c766f8))
### Bug Fixes
* **app:** fix issue with external link redirection in android app ([b18120b](https://github.com/AmruthPillai/Reactive-Resume/commit/b18120b3f7223981e28c0441a6b7725787186edb))
* **client:** fix issue with react-query cache ([ed75a85](https://github.com/AmruthPillai/Reactive-Resume/commit/ed75a858279047dfd43152e041c1a09a625417f5))
### [3.1.4](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.1.3...v3.1.4) (2022-03-12)
### Bug Fixes
* **client:** exported pdf did not contain "Present" keyword with translations ([cf670af](https://github.com/AmruthPillai/Reactive-Resume/commit/cf670af4035dc9b462cf5b1aad06ca089cf1d40c))
* **client:** fix issues raised through lgtm alerts ([dfccb31](https://github.com/AmruthPillai/Reactive-Resume/commit/dfccb3130f889934d31196226be3d33e772f323b))
### [3.1.3](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.1.2...v3.1.3) (2022-03-12)
### Bug Fixes
* **server:** reform url for pdf generation and download ([6d55f91](https://github.com/AmruthPillai/Reactive-Resume/commit/6d55f917eab3cb2f5f3a90c5a18f03b625d60021)), closes [#661](https://github.com/AmruthPillai/Reactive-Resume/issues/661)
### [3.1.2](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.1.1...v3.1.2) (2022-03-12)
### CI
* **docker:**: include traefik routing and proxy to ensure server connections pass in local ([11cb066](https://github.com/AmruthPillai/Reactive-Resume/commit/11cb066573c6917857b79c028b97fcda1acaf90a))
### [3.1.1](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.1.0...v3.1.1) (2022-03-12)
### Features
* **client:** add product hunt announcement banner ([b515fc3](https://github.com/AmruthPillai/Reactive-Resume/commit/b515fc36e7f282db92e8eb509b6c5004a944fa95))
## [3.1.0](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.0.0...v3.1.0) (2022-03-12)
### Features
* **client:** add "spanish (es)" language to i18n locales ([bf167f8](https://github.com/AmruthPillai/Reactive-Resume/commit/bf167f81a3659677dada55856f5eaf0fc469e697))
* **client:** add mm/yyyy date option to date format options ([82bf44d](https://github.com/AmruthPillai/Reactive-Resume/commit/82bf44daa24422156779e9b38d3dc695176eaa09)), closes [#656](https://github.com/AmruthPillai/Reactive-Resume/issues/656)
* **client:** add sitemap generation to next app ([2cbc582](https://github.com/AmruthPillai/Reactive-Resume/commit/2cbc582a12b72b3012246022d4b518ed657d4c08))
* **client:** disable "Toggle Page Orientation" when there's only one page on the artboard ([01da1a0](https://github.com/AmruthPillai/Reactive-Resume/commit/01da1a06b802f1063a41d7a9a682e76b1daf9461)), closes [#655](https://github.com/AmruthPillai/Reactive-Resume/issues/655)
### Bug Fixes
* **client:** remove hard-coded "keywords:" in certain templates ([dda42b4](https://github.com/AmruthPillai/Reactive-Resume/commit/dda42b4c6b3bc359ac4f2bb91ca8118ddc84ec07)), closes [#650](https://github.com/AmruthPillai/Reactive-Resume/issues/650)
* **client:** show "present" string if end date is not entered, also add to i18n locales ([b5cd6c4](https://github.com/AmruthPillai/Reactive-Resume/commit/b5cd6c412b5b6b6ca7bb43c3801762de451f06b4)), closes [#653](https://github.com/AmruthPillai/Reactive-Resume/issues/653)
* **server:** photo uploads not working, fix save location and returned url ([799f208](https://github.com/AmruthPillai/Reactive-Resume/commit/799f20823e6d97a1ff0ba2c45c61d56304d0fa58)), closes [#658](https://github.com/AmruthPillai/Reactive-Resume/issues/658)
## [3.0.0](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.0.0-beta.6...v3.0.0) (2022-03-11)
### Features
* **lang**: add German, Kannada and Tamil languages to the app ([3a524f9](https://github.com/AmruthPillai/Reactive-Resume/commit/3a524f9c9c7a0e446491265b2242ad3dfeae188c))
* **docs:** add docusaurus workspace, initial setup of docs ([dc4aa0b](https://github.com/AmruthPillai/Reactive-Resume/commit/dc4aa0b496096bd59c45426bfcea6ba7db5f5c01))
## [3.0.0-beta.6](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.0.0-beta.5...v3.0.0-beta.6) (2022-03-11)
### Features
* **lang:** add language switcher on the landing page, in the footer ([8bc7d25](https://github.com/AmruthPillai/Reactive-Resume/commit/8bc7d2599ef6af7a07bfbe886c43844152b0d9f7))
### Bug Fixes
* **i18n:** add missing translation keys, update lang/locale logic ([7d8828a](https://github.com/AmruthPillai/Reactive-Resume/commit/7d8828a358d653bb162877a64c75028eb82678cd))
* **webkit:** fix issue with webkit not supporting .at() ([2654cba](https://github.com/AmruthPillai/Reactive-Resume/commit/2654cba039eb73d33257c36fa90a52cabc9fda96))
## [3.0.0-beta.5](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.0.0-beta.4...v3.0.0-beta.5) (2022-03-10)
### Bug Fixes
* **app:** fix issue with using swipelayout ([972e8b1](https://github.com/AmruthPillai/Reactive-Resume/commit/972e8b1bcf9ad44d8915bf23d189711672937bc0))
I'm excited for you to try out the app, as I've spent months building it to perfection. If you enjoy the experience of building your resume using the app, please consider supporting by [becoming a GitHub Sponsor](https://github.com/sponsors/AmruthPillai).

View File

@ -6,8 +6,8 @@ We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
- Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- The use of sexualized language or imagery, and sexual attention or advances of
any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address,
without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
@ -52,7 +52,7 @@ decisions when appropriate.
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
@ -60,7 +60,7 @@ representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
im.amruth@gmail.com.
[INSERT CONTACT METHOD].
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
@ -82,15 +82,15 @@ behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
@ -106,23 +106,27 @@ Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

85
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,85 @@
# Contributing to Reactive Resume
## Getting the project set up locally
There are a number of Docker Compose examples that are suitable for a wide variety of deployment strategies depending on your use-case. All the examples can be found in the `tools/compose` folder.
To run the development environment of the application locally on your computer, please follow these steps:
#### Requirements
- Docker (with Docker Compose)
- Node.js 20 or higher (with pnpm)
### 1. Fork and Clone the Repository
```sh
git clone https://github.com/{your-github-username}/Reactive-Resume.git
cd Reactive-Resume
```
### 2. Install dependencies
```sh
pnpm install
```
### 3. Copy .env.example to .env
```sh
cp .env.example .env
```
Please have a brief look over the environment variables and change them if necessary, for example, change the ports if you have a conflicting service running on your machine already.
### 4. Fire up all the required services through Docker Compose
```sh
docker compose -f tools/compose/development.yml --env-file .env -p reactive-resume up -d
```
It should take just under half a minute for all the services to be booted up correctly. You can check the status of all services by running `docker compose -p reactive-resume ps`
### 5. Run the development server
```sh
pnpm prisma:migrate:dev
pnpm dev
```
If everything went well, the frontend should be running on `http://localhost:5173` and the backend api should be accessible through `http://localhost:3000`. There is a proxy present to also route all requests to `http://localhost:5173/api` directly to the API. If you need to change the `PORT` environment variable for the server, please make sure to update the `apps/client/proxy.conf.json` file as well with the new endpoint.
You can also visit `http://localhost:3000/api/health`, the health check endpoint of the server to check if the server is running correctly, and it is able to connect to all it's dependent services. The output of the health check endpoint should look like this:
```json
{
"status": "ok",
"info": {
"database": { "status": "up" },
"storage": { "status": "up" },
"browser": { "status": "up", "version": "Chrome/119.0.6045.9" }
},
"error": {},
"details": {
"database": { "status": "up" },
"storage": { "status": "up" },
"browser": { "status": "up", "version": "Chrome/119.0.6045.9" }
}
}
```
---
## Pushing changes to the app
Firstly, ensure that there is a GitHub Issue created for the feature or bugfix you are working on. If it does not exist, create an issue and assign it to yourself.
Once you are happy with the changes you've made locally, commit it to your repository. Note that the project makes use of Conventional Commits, so commit messages would have to be in a specific format for it to be accepted. For example, a commit message to fix the translation on the homepage could look like:
```
git commit -m "fix(homepage): fix typo on homepage in the faq section"
```
It helps to be as descriptive as possible in commit messages so that users can be aware of the changes made by you.
Finally, create a pull request to merge the changes on your forked repository to the original repository hosted on AmruthPillai/Reactive-Resume. I can take a look at the changes you've made when I have the time and have it merged onto the app.

47
Dockerfile Normal file
View File

@ -0,0 +1,47 @@
ARG NX_CLOUD_ACCESS_TOKEN
# --- Base Image ---
FROM node:lts-bullseye-slim AS base
ARG NX_CLOUD_ACCESS_TOKEN
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
WORKDIR /app
# --- Build Image ---
FROM base AS build
ARG NX_CLOUD_ACCESS_TOKEN
COPY .npmrc package.json pnpm-lock.yaml ./
COPY ./tools/prisma /app/tools/prisma
RUN pnpm install --frozen-lockfile
COPY . .
ENV NX_CLOUD_ACCESS_TOKEN=$NX_CLOUD_ACCESS_TOKEN
RUN pnpm run build
# --- Release Image ---
FROM base AS release
ARG NX_CLOUD_ACCESS_TOKEN
RUN apt update && apt install -y dumb-init --no-install-recommends && rm -rf /var/lib/apt/lists/*
COPY --chown=node:node --from=build /app/.npmrc /app/package.json /app/pnpm-lock.yaml ./
RUN pnpm install --prod --frozen-lockfile
COPY --chown=node:node --from=build /app/dist ./dist
COPY --chown=node:node --from=build /app/tools/prisma ./tools/prisma
RUN pnpm run prisma:generate
ENV TZ=UTC
ENV PORT=3000
ENV NODE_ENV=production
EXPOSE 3000
CMD [ "dumb-init", "pnpm", "run", "start" ]

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 Amruth Pillai
Copyright (c) 2023 Amruth Pillai
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

197
README.md
View File

@ -1,119 +1,116 @@
<img src="https://github.com/AmruthPillai/Reactive-Resume/blob/main/docs/static/logo.svg" alt="Reactive Resume" width="256px" height="256px" />
<div align="center" markdown="1">
<a href="https://go.warp.dev/Reactive-Resume">
<img alt="Warp Sponsorship" width="400" src="https://github.com/warpdotdev/brand-assets/blob/main/Github/Sponsor/Warp-Github-LG-03.png?raw=true" />
</a>
### [Warp, built for coding with multiple AI agents.](https://go.warp.dev/Reactive-Resume)
[Available for MacOS, Linux, & Windows](https://go.warp.dev/Reactive-Resume)<br>
---
<img alt="Reactive Resume" width="800" src="https://i.imgur.com/FFc4nyZ.jpg" />
![App Version](https://img.shields.io/github/package-json/version/AmruthPillai/Reactive-Resume?label=version)
[![Docker Pulls](https://img.shields.io/docker/pulls/amruthpillai/reactive-resume)](https://hub.docker.com/repository/docker/amruthpillai/reactive-resume)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/AmruthPillai)](https://github.com/sponsors/AmruthPillai)
[![Crowdin](https://badges.crowdin.net/reactive-resume/localized.svg)](https://crowdin.com/project/reactive-resume)
[![Discord](https://img.shields.io/discord/1173518977851473940?label=discord&link=https%3A%2F%2Fdiscord.gg%2FhzwkZbyvUW)](https://discord.gg/hzwkZbyvUW)
# Reactive Resume
[![Project Version](https://img.shields.io/github/package-json/v/AmruthPillai/Reactive-Resume?style=flat-square)](https://github.com/AmruthPillai/Reactive-Resume/releases)
[![Project License](https://img.shields.io/github/license/AmruthPillai/Reactive-Resume?style=flat-square)](https://github.com/AmruthPillai/Reactive-Resume/blob/main/LICENSE)
[![Crowdin](https://badges.crowdin.net/reactive-resume/localized.svg)](https://translate.rxresu.me)
[![Docker Pulls](https://img.shields.io/docker/pulls/amruthpillai/reactive-resume?style=flat-square)](https://hub.docker.com/r/amruthpillai/reactive-resume)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/AmruthPillai/Reactive-Resume/Build%20and%20Push%20Docker%20Image?label=docker%20build&style=flat-square)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FAmruthPillai%2FReactive-Resume.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FAmruthPillai%2FReactive-Resume?ref=badge_shield)
A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.
## [Go to App](https://rxresu.me) | [Docs](https://docs.rxresu.me)
### [Go to App](https://rxresu.me/) | [Docs](https://docs.rxresu.me/)
Reactive Resume is a free and open source resume builder thats built to make the mundane tasks of creating, updating and sharing your resume as easy as 1, 2, 3. With this app, you can create multiple resumes, share them with recruiters through a unique link and print as PDF, all for free, no advertisements, without losing the integrity and privacy of your data.
</div>
You have complete control over what goes into your resume, how it looks, what colors, what templates, even the layout in which sections placed. Want a dark mode resume? Its as easy as editing 3 values and youre done. You dont need to wait to see your changes either. Everything you type, everything you change, appears immediately on your resume and gets updated in real time.
## Description
Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume. With zero user tracking or advertising, your privacy is a top priority. The platform is extremely user-friendly and can be self-hosted in less than 30 seconds if you wish to own your data completely.
It's available in multiple languages and comes packed with features such as real-time editing, dozens of templates, drag-and-drop customisation, and integration with OpenAI for enhancing your writing.
You can share a personalised link of your resume to potential employers, track its views or downloads, and customise your page layout by dragging-and-dropping sections. The platform also supports various font options and provides dozens of templates to choose from. And yes, there's even a dark mode for a more comfortable viewing experience.
Start creating your standout resume with Reactive Resume today!
## Templates
| Azurill | Bronzor | Chikorita |
| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| <img src="./apps/client/public/templates/jpg/azurill.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/bronzor.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/chikorita.jpg" width="200px" /> |
| Ditto | Gengar | Glalie |
| -------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| <img src="./apps/client/public/templates/jpg/ditto.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/gengar.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/glalie.jpg" width="200px" /> |
| Kakuna | Leafish | Nosepass |
| ---------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| <img src="./apps/client/public/templates/jpg/kakuna.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/leafish.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/nosepass.jpg" width="200px" /> |
| Onyx | Pikachu | Rhyhorn |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| <img src="./apps/client/public/templates/jpg/onyx.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/pikachu.jpg" width="200px" /> | <img src="./apps/client/public/templates/jpg/rhyhorn.jpg" width="200px" /> |
## Features
- Free, forever
- No Advertising
- No User Tracking
- Sync your data across devices
- Accessible in multiple languages
- Import data from [LinkedIn](https://www.linkedin.com/), [JSON Resume](https://jsonresume.org/)
- Manage multiple resumes with one account
- Open Source (with large community support)
- Send your resume to others with a unique sharable link
- Pick any font from [Google Fonts](https://fonts.google.com/) to use on your resume
- Choose from 6 vibrant templates and more coming soon
- Export your resume to JSON or PDF format with just one click
- Create an account using your email, or just Sign in with Google
- Mix and match colors to any degree, even a dark mode resume?
- Add sections, add pages and change layouts the way you want to
- Tailor-made Backend and Database, isolated from Google, Amazon etc.
- **Oh, and did I mention that it's free?**
- **Free, forever** and open-source
- No telemetry, user tracking or advertising
- You can self-host the application in less than 30 seconds
- **Available in multiple languages** ([help add/improve your language here](https://translate.rxresu.me/))
- Use your email address (or a throw-away address, no problem) to create an account
- You can also sign in with your GitHub or Google account, and even set up two-factor authentication for extra security
- Create as many resumes as you like under a single account, optimising each resume for every job application based on its description for a higher ATS score
- **Bring your own OpenAI API key** and unlock features such as improving your writing, fixing spelling and grammar or changing the tone of your text in one-click
- Translate your resume into any language using ChatGPT and import it back for easier editing
- Create single page resumes or a resume that spans multiple pages easily
- Customize the colours and layouts to add a personal touch to your resume
- Customise your page layout as you like just by dragging-and-dropping sections
- Create custom sections that are specific to your industry if the existing ones don't fit
- Jot down personal notes specific to your resume that's only visible to you
- Lock a resume to prevent making any further edits (useful for master templates)
- **Dozens of templates** to choose from, ranging from professional to modern
- Design your resume using the standardised EuroPass design template
- Supports printing resumes in A4 or Letter page formats
- Design your resume with any font that's available on [Google Fonts](https://fonts.google.com/)
- **Share a personalised link of your resume** to companies or recruiters for them to get the latest updates
- You can track the number of views or downloads your public resume has received
- Built with state-of-the-art (at the moment) and dependable technologies that's battle tested and peer reviewed by the open-source community on GitHub
- **MIT License**, so do what you like with the code as long as you credit the original author
- And yes, theres a dark mode too 🌓
## Languages
## Built With
- Arabic (اَلْعَرَبِيَّةُ)
- Bengali (বাংলা)
- Chinese (中文)
- Danish (Dansk)
- Dutch (Nederlands)
- English
- French (Français)
- German (Deutsch)
- Hindi (हिन्दी)
- Italian (Italiano)
- Kannada (ಕನ್ನಡ)
- Malayalam (മലയാളം)
- Polish (Polski)
- Portuguese (Português)
- Russian (русский)
- Spanish (Español)
- Tamil (தமிழ்)
- Turkish (Türkçe)
- Vietnamese (Tiếng Việt)
- React (Vite), for the frontend
- NestJS, for the backend
- Postgres (primary database)
- Prisma ORM, which frees you to switch to any other relational database with a few minor changes in the code
- Minio (for object storage: to store avatars, resume PDFs and previews)
- Browserless (for headless chrome, to print PDFs and generate previews)
- SMTP Server (to send password recovery emails)
- GitHub/Google OAuth (for quickly authenticating users)
- LinguiJS and Crowdin (for translation management and localization)
Help by [translating Reactive Resume](https://translate.rxresu.me) to your language!
## Star History
## Tutorial
The docs include an extensive [Tutorial](https://docs.rxresu.me/tutorial) section which outline the features of Reactive Resume and help you through building your first resume on the app.
## Build from Source
For extensive information on how to build the app on your local machine, head over to the docs's [Source Code](https://docs.rxresu.me/source-code) section.
## Contributing
This project makes use of [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) style and workflow for commit messages to ensure that the CHANGELOG is auto-generated. In general, this project follows the "fork-and-pull" Git workflow.
1. **Fork** the repo on GitHub
2. **Clone** the project to your own machine
3. **Commit** changes to your own branch
4. **Push** your work back up to your fork
5. Submit a **Pull Request** so that we can review your changes
NOTE: Be sure to merge the latest from `main` before making a pull request!
## Bugs? Feature Requests?
Use the [GitHub Issues](https://github.com/AmruthPillai/Reactive-Resume/issues/new/choose) platform to notify me about bugs or new features that you would like to see in Reactive Resume. Please check before creating new issues as there might already be one.
## Donations
Reactive Resume would be nothing without the folks who supported me and kept the project alive in the beginning, and your continued support is what keeps me going. If you found Reactive Resume to be useful, helpful or just insightful and appreciate the effort I took to make the project, please consider donating as little or as much as you can.
### [💸 PayPal](https://paypal.me/RajaRajanA)
## Infrastructure
- [Next.js](https://nextjs.org/), frontend
- [NestJS](https://nestjs.com/), backend
- [PostgreSQL](https://www.postgresql.org/), database
- [DigitalOcean](https://www.digitalocean.com/), infrastructure provider
- [Crowdin](https://translate.rxresu.me/), translation management platform
&nbsp;
<a href="https://pillai.xyz/digitalocean">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg" width="200px" />
<a href="https://star-history.com/#AmruthPillai/Reactive-Resume&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=AmruthPillai/Reactive-Resume&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=AmruthPillai/Reactive-Resume&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=AmruthPillai/Reactive-Resume&type=Date" />
</picture>
</a>
## Contributors Wall
<a href="https://github.com/AmruthPillai/Reactive-Resume/graphs/contributors">
<img src="https://contrib.rocks/image?repo=AmruthPillai/Reactive-Resume" />
</a>
_Note: It may take up to 24h for the [contrib.rocks](https://contrib.rocks/image?repo=AmruthPillai/Reactive-Resume) plugin to update because it's refreshed once a day._
## License
Reactive Resume is packaged and distributed using the [MIT License](https://choosealicense.com/licenses/mit/) which allows for commercial use, distribution, modification and private use provided that all copies of the software contain the same license and copyright.
Reactive Resume is packaged and distributed using the [MIT License](/LICENSE.md) which allows for commercial use, distribution, modification and private use provided that all copies of the software contain the same license and copyright.
_By the community, for the community._
A passion project by [Amruth Pillai](https://amruthpillai.com/)
A passion project by [Amruth Pillai](https://www.amruthpillai.com/)
<p>
<a href="https://m.do.co/c/ceae1fff245e">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg" width="200px">
</a>
</p>

14
SECURITY.md Normal file
View File

@ -0,0 +1,14 @@
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 4.x.x | :white_check_mark: |
| 3.x.x | :x: |
| 2.x.x | :x: |
| 1.x.x | :x: |
## Reporting a Vulnerability
Please raise an issue on GitHub to report any security vulnerabilities in the app. If the vulnerability is potentially lethal, email me about it on hello@amruthpillai.com.

33
app/.gitignore vendored
View File

@ -1,33 +0,0 @@
# Gradle files
.gradle/
build/
# Local configuration file (sdk path, etc)
local.properties
# Log/OS Files
*.log
# Android Studio generated files and folders
captures/
.externalNativeBuild/
.cxx/
*.apk
output.json
# IntelliJ
*.iml
.idea/
misc.xml
deploymentTargetDropDown.xml
render.experimental.xml
# Keystore files
*.jks
*.keystore
# Google Services (e.g. APIs or Firebase)
google-services.json
# Android Profiling
*.hprof

View File

@ -1,8 +0,0 @@
root = true
[*]
charset = utf-8
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

2
app/app/.gitignore vendored
View File

@ -1,2 +0,0 @@
/build
/release

View File

@ -1,46 +0,0 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
compileSdk 32
defaultConfig {
applicationId "me.rxresu.app"
minSdk 21
targetSdk 32
versionCode 3
versionName "1.0"
resConfigs "en"
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
viewBinding true
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'com.google.android.material:material:1.5.0'
}

View File

@ -1,21 +0,0 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="me.rxresu.app">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:configChanges="orientation|screenSize"
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,21 +0,0 @@
package me.rxresu.app
import android.content.Intent
import android.net.Uri
import android.webkit.WebView
import android.webkit.WebViewClient
internal class CustomWebViewClient : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
val hostname = "rxresu.me"
val uri = Uri.parse(url)
if (uri.host != null && uri.host!!.endsWith(hostname)) {
return false
}
view.context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
return true
}
}

View File

@ -1,35 +0,0 @@
package me.rxresu.app
import android.annotation.SuppressLint
import android.os.Bundle
import android.webkit.WebView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView
private var url = "https://rxresu.me"
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webview)
webView.webViewClient = CustomWebViewClient()
webView.settings.javaScriptEnabled = true
webView.settings.userAgentString = "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Mobile Safari/537.36"
webView.loadUrl(url)
}
override fun onBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
}
}

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<include
layout="@layout/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/webview"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#FFFFFF</color>
</resources>

View File

@ -1,3 +0,0 @@
<resources>
<string name="app_name">Reactive Resume</string>
</resources>

View File

@ -1,6 +0,0 @@
<resources>
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources>

View File

@ -1,9 +0,0 @@
plugins {
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.6.20' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}

View File

@ -1,23 +0,0 @@
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true

Binary file not shown.

View File

@ -1,6 +0,0 @@
#Wed Mar 09 21:34:49 CET 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

185
app/gradlew vendored
View File

@ -1,185 +0,0 @@
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"

89
app/gradlew.bat vendored
View File

@ -1,89 +0,0 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

View File

@ -1,16 +0,0 @@
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "Reactive Resume"
include ':app'

View File

@ -0,0 +1,46 @@
{
"extends": ["plugin:@nx/react", "../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"extends": ["plugin:tailwindcss/recommended"],
"settings": {
"tailwindcss": {
"callees": ["cn", "clsx", "cva"],
"config": "tailwind.config.js"
}
},
"rules": {
// eslint
"@typescript-eslint/no-require-imports": "off",
// react
"react/no-unescaped-entities": "off",
"react/jsx-sort-props": [
"error",
{
"reservedFirst": true,
"callbacksLast": true,
"shorthandFirst": true,
"noSortAlphabetically": true
}
],
// react-hooks
"react-hooks/exhaustive-deps": "off",
// tailwindcss
"tailwindcss/no-custom-classname": "off"
}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}

44
apps/artboard/index.html Normal file
View File

@ -0,0 +1,44 @@
<!doctype html>
<html lang="en-US" translate="no">
<head>
<base href="/" />
<!-- SEO -->
<title>Reactive Resume - A free and open-source resume builder</title>
<meta
name="description"
content="A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
/>
<!-- Meta -->
<meta charset="utf-8" />
<meta name="googlebot" content="notranslate" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Favicon -->
<link
rel="icon"
type="image/svg+xml"
href="/icon/dark.svg"
media="(prefers-color-scheme: light)"
/>
<link
rel="icon"
type="image/svg+xml"
href="/icon/light.svg"
media="(prefers-color-scheme: dark)"
/>
<!-- Styles -->
<link rel="stylesheet" href="/src/styles/main.css" />
</head>
<body>
<div id="root"></div>
<!-- Scripts -->
<script type="module" src="/src/main.tsx"></script>
<!-- Phosphor Icons -->
<script src="https://cdn.jsdelivr.net/npm/@phosphor-icons/web"></script>
</body>
</html>

View File

@ -0,0 +1,10 @@
const path = require("node:path");
module.exports = {
plugins: {
tailwindcss: {
config: path.join(__dirname, "tailwind.config.js"),
},
autoprefixer: {},
},
};

View File

@ -0,0 +1,64 @@
{
"name": "artboard",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/artboard/src",
"projectType": "application",
"targets": {
"build": {
"executor": "@nx/vite:build",
"outputs": ["{options.outputPath}"],
"defaultConfiguration": "production",
"options": {
"outputPath": "dist/apps/artboard"
},
"configurations": {
"development": {
"mode": "development"
},
"production": {
"mode": "production"
}
}
},
"serve": {
"executor": "@nx/vite:dev-server",
"defaultConfiguration": "development",
"options": {
"buildTarget": "artboard:build"
},
"configurations": {
"development": {
"buildTarget": "artboard:build:development",
"hmr": true
},
"production": {
"buildTarget": "artboard:build:production",
"hmr": false
}
}
},
"preview": {
"executor": "@nx/vite:preview-server",
"defaultConfiguration": "development",
"options": {
"buildTarget": "artboard:build"
},
"configurations": {
"development": {
"buildTarget": "artboard:build:development"
},
"production": {
"buildTarget": "artboard:build:production"
}
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["apps/artboard/**/*.{ts,tsx,js,jsx}"]
}
}
},
"tags": ["frontend"]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" fill="none"><rect width="256" height="256" rx="80" style="fill:#000;stroke:none;stroke-width:.396357"/><g fill="#09090b" fill-rule="evenodd" clip-rule="evenodd"><path d="m282.857 257.192-37.64 50.15 39.21.004 17.95-23.88 17.95 23.876h39.21l-75.11-100.256-39.21-.003zm23.775-31.764 13.696-18.345h39.21l-33.234 44.435zM119.537 135.21v129.485h36.626V230.29h19.993c17.99-.01 40.841-3.946 52.762-21.828 4.686-7.152 7.03-15.6 7.03-25.342 0-9.865-2.344-18.374-7.03-25.527-4.687-7.276-11.346-12.825-19.978-16.648-8.51-3.823-18.37-5.735-30.21-5.735zm90.963 95.183s-14.972 6.285-34.681 6.047l21.162 28.255h39.21zm-54.337-28.405h20.348c7.646 0 13.319-1.665 17.018-4.995 3.823-3.33 5.735-7.954 5.735-13.874 0-6.042-1.912-10.729-5.735-14.058-3.7-3.33-9.372-4.995-17.018-4.995h-20.348z" style="fill:#fafafa;fill-opacity:1;stroke-width:.9375" transform="matrix(.91667 0 0 .91667 -91.576 -74.838)"/></g></svg>

After

Width:  |  Height:  |  Size: 958 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="#09090b" fill-rule="evenodd" d="m16.332 15.592-3.764 5.015h3.921l1.795-2.388 1.795 2.388H24L16.489 10.58h-3.921Zm2.377-3.177 1.37-1.834H24l-3.323 4.443zM0 3.393v12.949h3.663v-3.44h1.999c1.799-.002 4.084-.395 5.276-2.183.469-.716.703-1.56.703-2.535 0-.986-.234-1.837-.703-2.552-.469-.728-1.135-1.283-1.998-1.665-.85-.382-1.837-.574-3.02-.574Zm9.096 9.519s-1.497.628-3.468.604l2.116 2.826h3.921zm-5.433-2.84h2.034c.765 0 1.332-.167 1.702-.5.382-.333.574-.796.574-1.388 0-.604-.192-1.073-.574-1.405-.37-.333-.937-.5-1.702-.5H3.663Z" clip-rule="evenodd" style="stroke-width:.09375"/></svg>

After

Width:  |  Height:  |  Size: 672 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="#09090b" fill-rule="evenodd" d="m16.332 15.592-3.764 5.015h3.921l1.795-2.388 1.795 2.388H24L16.489 10.58h-3.921Zm2.377-3.177 1.37-1.834H24l-3.323 4.443zM0 3.393v12.949h3.663v-3.44h1.999c1.799-.002 4.084-.395 5.276-2.183.469-.716.703-1.56.703-2.535 0-.986-.234-1.837-.703-2.552-.469-.728-1.135-1.283-1.998-1.665-.85-.382-1.837-.574-3.02-.574Zm9.096 9.519s-1.497.628-3.468.604l2.116 2.826h3.921zm-5.433-2.84h2.034c.765 0 1.332-.167 1.702-.5.382-.333.574-.796.574-1.388 0-.604-.192-1.073-.574-1.405-.37-.333-.937-.5-1.702-.5H3.663Z" clip-rule="evenodd" style="stroke-width:.09375;fill:#fafafa;fill-opacity:1"/></svg>

After

Width:  |  Height:  |  Size: 700 B

View File

@ -0,0 +1,24 @@
import { forwardRef } from "react";
type BrandIconProps = {
slug: string;
};
export const BrandIcon = forwardRef<HTMLImageElement, BrandIconProps>(({ slug }, ref) => {
if (slug.toLowerCase() === "linkedin") {
return (
<img
ref={ref}
alt="LinkedIn"
className="size-4"
src={`${window.location.origin}/support-logos/linkedin.svg`}
/>
);
}
return (
<img ref={ref} alt={slug} className="size-4" src={`https://cdn.simpleicons.org/${slug}`} />
);
});
BrandIcon.displayName = "BrandIcon";

View File

@ -0,0 +1,48 @@
import { useTheme } from "@reactive-resume/hooks";
import { cn, pageSizeMap } from "@reactive-resume/utils";
import { useArtboardStore } from "../store/artboard";
type Props = {
mode?: "preview" | "builder";
pageNumber: number;
children: React.ReactNode;
};
export const MM_TO_PX = 3.78;
export const Page = ({ mode = "preview", pageNumber, children }: Props) => {
const { isDarkMode } = useTheme();
const page = useArtboardStore((state) => state.resume.metadata.page);
const fontFamily = useArtboardStore((state) => state.resume.metadata.typography.font.family);
return (
<div
data-page={pageNumber}
className={cn("relative bg-background text-foreground", mode === "builder" && "shadow-2xl")}
style={{
fontFamily,
width: `${pageSizeMap[page.format].width * MM_TO_PX}px`,
minHeight: `${pageSizeMap[page.format].height * MM_TO_PX}px`,
}}
>
{mode === "builder" && page.options.pageNumbers && (
<div className={cn("absolute -top-7 left-0 font-bold", isDarkMode && "text-white")}>
Page {pageNumber}
</div>
)}
{children}
{mode === "builder" && page.options.breakLine && (
<div
className="absolute inset-x-0 border-b border-dashed"
style={{
top: `${pageSizeMap[page.format].height * MM_TO_PX}px`,
}}
/>
)}
</div>
);
};

View File

@ -0,0 +1,33 @@
import { cn, isUrl } from "@reactive-resume/utils";
import { useArtboardStore } from "../store/artboard";
type PictureProps = {
className?: string;
};
export const Picture = ({ className }: PictureProps) => {
const picture = useArtboardStore((state) => state.resume.basics.picture);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
if (!isUrl(picture.url) || picture.effects.hidden) return null;
return (
<img
alt="Profile"
src={picture.url}
className={cn(
"relative z-20 object-cover",
picture.effects.border && "border-primary",
picture.effects.grayscale && "grayscale",
className,
)}
style={{
maxWidth: `${picture.size}px`,
aspectRatio: `${picture.aspectRatio}`,
borderRadius: `${picture.borderRadius}px`,
borderWidth: `${picture.effects.border ? fontSize / 3 : 0}px`,
}}
/>
);
};

View File

@ -0,0 +1,5 @@
import { HelmetData } from "react-helmet-async";
export const helmetData = new HelmetData({});
export const helmetContext = helmetData.context;

View File

@ -0,0 +1,14 @@
import { StrictMode } from "react";
import * as ReactDOM from "react-dom/client";
import { RouterProvider } from "react-router";
import { router } from "./router";
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const root = ReactDOM.createRoot(document.querySelector("#root")!);
root.render(
<StrictMode>
<RouterProvider router={router} />
</StrictMode>,
);

View File

@ -0,0 +1,74 @@
import { useEffect, useMemo } from "react";
import { Helmet } from "react-helmet-async";
import { Outlet } from "react-router";
import webfontloader from "webfontloader";
import { useArtboardStore } from "../store/artboard";
export const ArtboardPage = () => {
const name = useArtboardStore((state) => state.resume.basics.name);
const metadata = useArtboardStore((state) => state.resume.metadata);
const fontString = useMemo(() => {
const family = metadata.typography.font.family;
const variants = metadata.typography.font.variants.join(",");
const subset = metadata.typography.font.subset;
return `${family}:${variants}:${subset}`;
}, [metadata.typography.font]);
useEffect(() => {
webfontloader.load({
google: { families: [fontString] },
active: () => {
const width = window.document.body.offsetWidth;
const height = window.document.body.offsetHeight;
const message = { type: "PAGE_LOADED", payload: { width, height } };
window.postMessage(message, "*");
},
});
}, [fontString]);
// Font Size & Line Height
useEffect(() => {
document.documentElement.style.setProperty("font-size", `${metadata.typography.font.size}px`);
document.documentElement.style.setProperty("line-height", `${metadata.typography.lineHeight}`);
document.documentElement.style.setProperty("--margin", `${metadata.page.margin}px`);
document.documentElement.style.setProperty("--font-size", `${metadata.typography.font.size}px`);
document.documentElement.style.setProperty(
"--line-height",
`${metadata.typography.lineHeight}`,
);
document.documentElement.style.setProperty("--color-foreground", metadata.theme.text);
document.documentElement.style.setProperty("--color-primary", metadata.theme.primary);
document.documentElement.style.setProperty("--color-background", metadata.theme.background);
}, [metadata]);
// Typography Options
useEffect(() => {
// eslint-disable-next-line unicorn/prefer-spread
const elements = Array.from(document.querySelectorAll(`[data-page]`));
for (const el of elements) {
el.classList.toggle("hide-icons", metadata.typography.hideIcons);
el.classList.toggle("underline-links", metadata.typography.underlineLinks);
}
}, [metadata]);
return (
<>
<Helmet>
<title>{name} | Reactive Resume</title>
{metadata.css.visible && (
<style id="custom-css" lang="css">
{metadata.css.value}
</style>
)}
</Helmet>
<Outlet />
</>
);
};

View File

@ -0,0 +1,84 @@
import type { SectionKey } from "@reactive-resume/schema";
import type { Template } from "@reactive-resume/utils";
import { pageSizeMap } from "@reactive-resume/utils";
import { AnimatePresence, motion } from "framer-motion";
import { useEffect, useMemo, useRef, useState } from "react";
import type { ReactZoomPanPinchRef } from "react-zoom-pan-pinch";
import { TransformComponent, TransformWrapper } from "react-zoom-pan-pinch";
import { MM_TO_PX, Page } from "../components/page";
import { useArtboardStore } from "../store/artboard";
import { getTemplate } from "../templates";
export const BuilderLayout = () => {
const [wheelPanning, setWheelPanning] = useState(true);
const transformRef = useRef<ReactZoomPanPinchRef>(null);
const layout = useArtboardStore((state) => state.resume.metadata.layout);
const format = useArtboardStore((state) => state.resume.metadata.page.format);
const template = useArtboardStore((state) => state.resume.metadata.template as Template);
const Template = useMemo(() => getTemplate(template), [template]);
useEffect(() => {
const handleMessage = (event: MessageEvent) => {
if (event.origin !== window.location.origin) return;
if (event.data.type === "ZOOM_IN") transformRef.current?.zoomIn(0.2);
if (event.data.type === "ZOOM_OUT") transformRef.current?.zoomOut(0.2);
if (event.data.type === "CENTER_VIEW") transformRef.current?.centerView();
if (event.data.type === "RESET_VIEW") {
transformRef.current?.resetTransform(0);
setTimeout(() => transformRef.current?.centerView(0.8, 0), 10);
}
if (event.data.type === "TOGGLE_PAN_MODE") {
setWheelPanning(event.data.panMode);
}
};
window.addEventListener("message", handleMessage);
return () => {
window.removeEventListener("message", handleMessage);
};
}, [transformRef]);
return (
<TransformWrapper
ref={transformRef}
centerOnInit
maxScale={2}
minScale={0.4}
initialScale={0.8}
limitToBounds={false}
wheel={{ wheelDisabled: wheelPanning }}
panning={{ wheelPanning: wheelPanning }}
>
<TransformComponent
wrapperClass="!w-screen !h-screen"
contentClass="grid items-start justify-center space-x-12 pointer-events-none"
contentStyle={{
width: `${layout.length * (pageSizeMap[format].width * MM_TO_PX + 42)}px`,
gridTemplateColumns: `repeat(${layout.length}, 1fr)`,
}}
>
<AnimatePresence>
{layout.map((columns, pageIndex) => (
<motion.div
key={pageIndex}
layout
initial={{ opacity: 0, x: -200, y: 0 }}
animate={{ opacity: 1, x: 0, transition: { delay: pageIndex * 0.3 } }}
exit={{ opacity: 0, x: -200 }}
>
<Page mode="builder" pageNumber={pageIndex + 1}>
<Template isFirstPage={pageIndex === 0} columns={columns as SectionKey[][]} />
</Page>
</motion.div>
))}
</AnimatePresence>
</TransformComponent>
</TransformWrapper>
);
};

View File

@ -0,0 +1,24 @@
import type { SectionKey } from "@reactive-resume/schema";
import type { Template } from "@reactive-resume/utils";
import { useMemo } from "react";
import { Page } from "../components/page";
import { useArtboardStore } from "../store/artboard";
import { getTemplate } from "../templates";
export const PreviewLayout = () => {
const layout = useArtboardStore((state) => state.resume.metadata.layout);
const template = useArtboardStore((state) => state.resume.metadata.template as Template);
const Template = useMemo(() => getTemplate(template), [template]);
return (
<>
{layout.map((columns, pageIndex) => (
<Page key={pageIndex} mode="preview" pageNumber={pageIndex + 1}>
<Template isFirstPage={pageIndex === 0} columns={columns as SectionKey[][]} />
</Page>
))}
</>
);
};

View File

@ -0,0 +1,39 @@
import { useEffect } from "react";
import { HelmetProvider } from "react-helmet-async";
import { Outlet } from "react-router";
import { helmetContext } from "../constants/helmet";
import { useArtboardStore } from "../store/artboard";
export const Providers = () => {
const resume = useArtboardStore((state) => state.resume);
const setResume = useArtboardStore((state) => state.setResume);
useEffect(() => {
const handleMessage = (event: MessageEvent) => {
if (event.origin !== window.location.origin) return;
if (event.data.type === "SET_RESUME") setResume(event.data.payload);
};
window.addEventListener("message", handleMessage, false);
return () => {
window.removeEventListener("message", handleMessage, false);
};
}, []);
useEffect(() => {
const resumeData = window.localStorage.getItem("resume");
if (resumeData) setResume(JSON.parse(resumeData));
}, [window.localStorage.getItem("resume")]);
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (!resume) return null;
return (
<HelmetProvider context={helmetContext}>
<Outlet />
</HelmetProvider>
);
};

View File

@ -0,0 +1,17 @@
import { createBrowserRouter, createRoutesFromChildren, Route } from "react-router";
import { ArtboardPage } from "../pages/artboard";
import { BuilderLayout } from "../pages/builder";
import { PreviewLayout } from "../pages/preview";
import { Providers } from "../providers";
export const routes = createRoutesFromChildren(
<Route element={<Providers />}>
<Route path="artboard" element={<ArtboardPage />}>
<Route path="builder" element={<BuilderLayout />} />
<Route path="preview" element={<PreviewLayout />} />
</Route>
</Route>,
);
export const router = createBrowserRouter(routes);

View File

@ -0,0 +1,14 @@
import type { ResumeData } from "@reactive-resume/schema";
import { create } from "zustand";
export type ArtboardStore = {
resume: ResumeData;
setResume: (resume: ResumeData) => void;
};
export const useArtboardStore = create<ArtboardStore>()((set) => ({
resume: null as unknown as ResumeData,
setResume: (resume) => {
set({ resume });
},
}));

View File

@ -0,0 +1,29 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
* {
font-variant-ligatures: none;
@apply border-current;
}
body {
overflow: hidden;
}
#root {
@apply antialiased;
}
[data-page].hide-icons .ph {
@apply hidden;
}
[data-page].underline-links a {
@apply underline underline-offset-2;
}
.wysiwyg {
@apply prose-foreground prose max-w-none prose-headings:mb-2 prose-headings:mt-0 prose-p:mb-2 prose-p:mt-0 prose-p:leading-normal prose-a:break-all prose-ol:mb-2 prose-ol:mt-0 prose-ul:mb-2 prose-ul:mt-0 prose-li:mb-2 prose-li:mt-0 prose-li:leading-normal prose-img:mb-2 prose-img:mt-0 prose-hr:mb-2 prose-hr:mt-0;
}

View File

@ -0,0 +1,576 @@
import type {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
} from "@reactive-resume/schema";
import { Education, Experience, Volunteer } from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl, linearTransform, sanitize } from "@reactive-resume/utils";
import get from "lodash.get";
import React, { Fragment } from "react";
import { BrandIcon } from "../components/brand-icon";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import type { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="flex flex-col items-center justify-center space-y-2 pb-2 text-center">
<Picture />
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
{isUrl(item.value) ? (
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
{item.name || item.value}
</a>
) : (
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
)}
</div>
))}
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<div className="mb-2 hidden font-bold text-primary group-[.main]:block">
<h4>{section.name}</h4>
</div>
<div className="mb-2 hidden items-center gap-x-2 text-center font-bold text-primary group-[.sidebar]:flex">
<div className="size-1.5 rounded-full border border-primary" />
<h4>{section.name}</h4>
<div className="size-1.5 rounded-full border border-primary" />
</div>
<main className={cn("relative space-y-2", "border-l border-primary pl-4")}>
<div className="absolute left-[-4.5px] top-[8px] hidden size-[8px] rounded-full bg-primary group-[.main]:block" />
<div
dangerouslySetInnerHTML={{ __html: sanitize(section.content) }}
style={{ columns: section.columns }}
className="wysiwyg"
/>
</main>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="relative h-1 w-[128px] group-[.sidebar]:mx-auto">
<div className="absolute inset-0 h-1 w-[128px] rounded bg-primary opacity-25" />
<div
className="absolute inset-0 h-1 rounded bg-primary"
style={{ width: linearTransform(level, 0, 5, 0, 128) }}
/>
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
iconOnRight?: boolean;
label?: string;
className?: string;
};
const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{!iconOnRight && (icon ?? <i className="ph ph-bold ph-link text-primary" />)}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label ?? (url.label || url.href)}
</a>
{iconOnRight && (icon ?? <i className="ph ph-bold ph-link text-primary" />)}
</div>
);
};
type LinkedEntityProps = {
name: string;
url: URL;
separateLinks: boolean;
className?: string;
};
const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => {
return !separateLinks && isUrl(url.href) ? (
<Link
url={url}
label={name}
icon={<i className="ph ph-bold ph-globe text-primary" />}
iconOnRight={true}
className={className}
/>
) : (
<div className={className}>{name}</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || section.items.filter((item) => item.visible).length === 0) return null;
return (
<section id={section.id} className="grid">
<div className="mb-2 hidden font-bold text-primary group-[.main]:block">
<h4>{section.name}</h4>
</div>
<div className="mx-auto mb-2 hidden items-center gap-x-2 text-center font-bold text-primary group-[.sidebar]:flex">
<div className="size-1.5 rounded-full border border-primary" />
<h4>{section.name}</h4>
<div className="size-1.5 rounded-full border border-primary" />
</div>
<div
className="grid gap-x-6 gap-y-3 group-[.sidebar]:mx-auto group-[.sidebar]:text-center"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div
key={item.id}
className={cn(
"relative space-y-2",
"border-primary group-[.main]:border-l group-[.main]:pl-4",
className,
)}
>
<div>{children?.(item as T)}</div>
{summary !== undefined && !isEmptyString(summary) && (
<div
dangerouslySetInnerHTML={{ __html: sanitize(summary) }}
className="wysiwyg"
/>
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
{url !== undefined && section.separateLinks && <Link url={url} />}
<div className="absolute left-[-4.5px] top-px hidden size-[8px] rounded-full bg-primary group-[.main]:block" />
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link url={item.url} label={item.username} icon={<BrandIcon slug={item.icon} />} />
) : (
<p>{item.username}</p>
)}
{!item.icon && <p className="text-sm">{item.network}</p>}
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.company}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
<div>{item.location}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.institution}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.area}</div>
<div>{item.score}</div>
<div>{item.studyType}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.title}</div>
<LinkedEntity name={item.awarder} url={item.url} separateLinks={section.separateLinks} />
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<LinkedEntity name={item.issuer} url={item.url} separateLinks={section.separateLinks} />
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.publisher}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.organization}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
<div>{item.location}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div>
<div>
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div>
<div>
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles": {
return <Profiles />;
}
case "summary": {
return <Summary />;
}
case "experience": {
return <Experience />;
}
case "education": {
return <Education />;
}
case "awards": {
return <Awards />;
}
case "certifications": {
return <Certifications />;
}
case "skills": {
return <Skills />;
}
case "interests": {
return <Interests />;
}
case "publications": {
return <Publications />;
}
case "volunteer": {
return <Volunteer />;
}
case "languages": {
return <Languages />;
}
case "projects": {
return <Projects />;
}
case "references": {
return <References />;
}
default: {
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
}
};
export const Azurill = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="p-custom space-y-3">
{isFirstPage && <Header />}
<div className="grid grid-cols-3 gap-x-4">
<div className="sidebar group space-y-4">
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
<div
className={cn("main group space-y-4", sidebar.length > 0 ? "col-span-2" : "col-span-3")}
>
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
</div>
);
};

View File

@ -0,0 +1,585 @@
import type {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
} from "@reactive-resume/schema";
import { Education, Experience, Volunteer } from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl, sanitize } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { BrandIcon } from "../components/brand-icon";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import type { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="flex flex-col items-center space-y-2 text-center">
<Picture />
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
{isUrl(item.value) ? (
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
{item.name || item.value}
</a>
) : (
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
)}
</div>
))}
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id} className="grid grid-cols-5 border-t pt-2.5">
<div>
<h4 className="text-base font-bold">{section.name}</h4>
</div>
<div
dangerouslySetInnerHTML={{ __html: sanitize(section.content) }}
style={{ columns: section.columns }}
className="wysiwyg col-span-4"
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn("size-2 rounded-full border border-primary", level > index && "bg-primary")}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
iconOnRight?: boolean;
label?: string;
className?: string;
};
const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{!iconOnRight && (icon ?? <i className="ph ph-bold ph-link text-primary" />)}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label ?? (url.label || url.href)}
</a>
{iconOnRight && (icon ?? <i className="ph ph-bold ph-link text-primary" />)}
</div>
);
};
type LinkedEntityProps = {
name: string;
url: URL;
separateLinks: boolean;
className?: string;
};
const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => {
return !separateLinks && isUrl(url.href) ? (
<Link
url={url}
label={name}
icon={<i className="ph ph-bold ph-globe text-primary" />}
iconOnRight={true}
className={className}
/>
) : (
<div className={className}>{name}</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || section.items.filter((item) => item.visible).length === 0) return null;
return (
<section id={section.id} className="grid grid-cols-5 border-t pt-2.5">
<div>
<h4 className="text-base font-bold">{section.name}</h4>
</div>
<div
className="col-span-4 grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>
{children?.(item as T)}
{url !== undefined && section.separateLinks && <Link url={url} />}
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div
dangerouslySetInnerHTML={{ __html: sanitize(summary) }}
className="wysiwyg"
/>
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link url={item.url} label={item.username} icon={<BrandIcon slug={item.icon} />} />
) : (
<p>{item.username}</p>
)}
{!item.icon && <p className="text-sm">{item.network}</p>}
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<LinkedEntity
name={item.company}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<LinkedEntity
name={item.institution}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<LinkedEntity
name={item.awarder}
url={item.url}
separateLinks={section.separateLinks}
/>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<LinkedEntity name={item.issuer} url={item.url} separateLinks={section.separateLinks} />
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<LinkedEntity
name={item.organization}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-start justify-between">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles": {
return <Profiles />;
}
case "summary": {
return <Summary />;
}
case "experience": {
return <Experience />;
}
case "education": {
return <Education />;
}
case "awards": {
return <Awards />;
}
case "certifications": {
return <Certifications />;
}
case "skills": {
return <Skills />;
}
case "interests": {
return <Interests />;
}
case "publications": {
return <Publications />;
}
case "volunteer": {
return <Volunteer />;
}
case "languages": {
return <Languages />;
}
case "projects": {
return <Projects />;
}
case "references": {
return <References />;
}
default: {
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
}
};
export const Bronzor = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="p-custom space-y-4">
{isFirstPage && <Header />}
<div className="space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
);
};

View File

@ -0,0 +1,597 @@
import type {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
} from "@reactive-resume/schema";
import { Education, Experience, Volunteer } from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl, sanitize } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { BrandIcon } from "../components/brand-icon";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import type { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="flex items-center space-x-4">
<Picture />
<div className="space-y-2">
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
{isUrl(item.value) ? (
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
{item.name || item.value}
</a>
) : (
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
)}
</div>
))}
</div>
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="mb-2 border-b pb-0.5 text-sm font-bold">{section.name}</h4>
<div
dangerouslySetInnerHTML={{ __html: sanitize(section.content) }}
style={{ columns: section.columns }}
className="wysiwyg"
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn(
"size-2 rounded-full border border-primary group-[.sidebar]:border-background",
level > index && "bg-primary group-[.sidebar]:bg-background",
)}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
iconOnRight?: boolean;
label?: string;
className?: string;
};
const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{!iconOnRight &&
(icon ?? <i className="ph ph-bold ph-link text-primary group-[.sidebar]:text-white" />)}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label ?? (url.label || url.href)}
</a>
{iconOnRight &&
(icon ?? <i className="ph ph-bold ph-link text-primary group-[.sidebar]:text-white" />)}
</div>
);
};
type LinkedEntityProps = {
name: string;
url: URL;
separateLinks: boolean;
className?: string;
};
const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => {
return !separateLinks && isUrl(url.href) ? (
<Link
url={url}
label={name}
icon={<i className="ph ph-bold ph-globe text-primary" />}
iconOnRight={true}
className={className}
/>
) : (
<div className={className}>{name}</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || section.items.filter((item) => item.visible).length === 0) return null;
return (
<section id={section.id} className="grid">
<h4 className="mb-2 border-b pb-0.5 text-sm font-bold">{section.name}</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>
{children?.(item as T)}
{url !== undefined && section.separateLinks && <Link url={url} />}
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div
dangerouslySetInnerHTML={{ __html: sanitize(summary) }}
className="wysiwyg group-[.sidebar]:prose-invert"
/>
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.company}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.institution}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link url={item.url} label={item.username} icon={<BrandIcon slug={item.icon} />} />
) : (
<p>{item.username}</p>
)}
{!item.icon && <p className="text-sm">{item.network}</p>}
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<LinkedEntity
name={item.awarder}
url={item.url}
separateLinks={section.separateLinks}
/>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<LinkedEntity name={item.issuer} url={item.url} separateLinks={section.separateLinks} />
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.organization}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles": {
return <Profiles />;
}
case "summary": {
return <Summary />;
}
case "experience": {
return <Experience />;
}
case "education": {
return <Education />;
}
case "awards": {
return <Awards />;
}
case "certifications": {
return <Certifications />;
}
case "skills": {
return <Skills />;
}
case "interests": {
return <Interests />;
}
case "publications": {
return <Publications />;
}
case "volunteer": {
return <Volunteer />;
}
case "languages": {
return <Languages />;
}
case "projects": {
return <Projects />;
}
case "references": {
return <References />;
}
default: {
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
}
};
export const Chikorita = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="grid min-h-[inherit] grid-cols-3">
<div
className={cn(
"main p-custom group space-y-4",
sidebar.length > 0 ? "col-span-2" : "col-span-3",
)}
>
{isFirstPage && <Header />}
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
<div
className={cn(
"sidebar p-custom group h-full space-y-4 bg-primary text-background",
sidebar.length === 0 && "hidden",
)}
>
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
);
};

View File

@ -0,0 +1,626 @@
import type {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
} from "@reactive-resume/schema";
import { Education, Experience, Volunteer } from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl, sanitize } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { BrandIcon } from "../components/brand-icon";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import type { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="p-custom relative grid grid-cols-3 space-x-4 pb-0">
<Picture className="mx-auto" />
<div className="relative z-10 col-span-2 text-background">
<div className="space-y-0.5">
<h2 className="text-3xl font-bold">{basics.name}</h2>
<p>{basics.headline}</p>
</div>
<div className="col-span-2 col-start-2 mt-10 text-foreground">
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
<div className="bg-text size-1 rounded-full last:hidden" />
</>
)}
{basics.phone && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
<div className="bg-text size-1 rounded-full last:hidden" />
</>
)}
{basics.email && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
<div className="bg-text size-1 rounded-full last:hidden" />
</>
)}
{isUrl(basics.url.href) && (
<>
<Link url={basics.url} />
<div className="bg-text size-1 rounded-full last:hidden" />
</>
)}
{basics.customFields.map((item) => (
<Fragment key={item.id}>
<div className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
{isUrl(item.value) ? (
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
{item.name || item.value}
</a>
) : (
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
)}
</div>
<div className="bg-text size-1 rounded-full last:hidden" />
</Fragment>
))}
</div>
</div>
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="mb-2 text-base font-bold">{section.name}</h4>
<div
dangerouslySetInnerHTML={{ __html: sanitize(section.content) }}
style={{ columns: section.columns }}
className="wysiwyg"
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn("h-2 w-4 border border-primary", level > index && "bg-primary")}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
iconOnRight?: boolean;
label?: string;
className?: string;
};
const Link = ({ url, icon, iconOnRight, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{!iconOnRight && (icon ?? <i className="ph ph-bold ph-link text-primary" />)}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label ?? (url.label || url.href)}
</a>
{iconOnRight && (icon ?? <i className="ph ph-bold ph-link text-primary" />)}
</div>
);
};
type LinkedEntityProps = {
name: string;
url: URL;
separateLinks: boolean;
className?: string;
};
const LinkedEntity = ({ name, url, separateLinks, className }: LinkedEntityProps) => {
return !separateLinks && isUrl(url.href) ? (
<Link
url={url}
label={name}
icon={<i className="ph ph-bold ph-globe text-primary" />}
iconOnRight={true}
className={className}
/>
) : (
<div className={className}>{name}</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || section.items.filter((item) => item.visible).length === 0) return null;
return (
<section id={section.id} className="grid">
<h4 className="mb-2 text-base font-bold">{section.name}</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div
key={item.id}
className={cn("relative space-y-2 pl-4 group-[.sidebar]:pl-0", className)}
>
<div className="relative -ml-4 group-[.sidebar]:ml-0">
<div className="pl-4 group-[.sidebar]:pl-0">
{children?.(item as T)}
{url !== undefined && section.separateLinks && <Link url={url} />}
</div>
<div className="absolute inset-y-0 -left-px border-l-4 border-primary group-[.sidebar]:hidden" />
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div
dangerouslySetInnerHTML={{ __html: sanitize(summary) }}
className="wysiwyg"
/>
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
<div className="absolute inset-y-0 left-0 border-l border-primary group-[.sidebar]:hidden" />
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link url={item.url} label={item.username} icon={<BrandIcon slug={item.icon} />} />
) : (
<p>{item.username}</p>
)}
{!item.icon && <p className="text-sm">{item.network}</p>}
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.company}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.institution}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<LinkedEntity
name={item.awarder}
url={item.url}
separateLinks={section.separateLinks}
/>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<LinkedEntity name={item.issuer} url={item.url} separateLinks={section.separateLinks} />
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} className="space-y-0" keywordsKey="keywords">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.organization}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-start justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<LinkedEntity
name={item.name}
url={item.url}
separateLinks={section.separateLinks}
className="font-bold"
/>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles": {
return <Profiles />;
}
case "summary": {
return <Summary />;
}
case "experience": {
return <Experience />;
}
case "education": {
return <Education />;
}
case "awards": {
return <Awards />;
}
case "certifications": {
return <Certifications />;
}
case "skills": {
return <Skills />;
}
case "interests": {
return <Interests />;
}
case "publications": {
return <Publications />;
}
case "volunteer": {
return <Volunteer />;
}
case "languages": {
return <Languages />;
}
case "projects": {
return <Projects />;
}
case "references": {
return <References />;
}
default: {
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
}
};
export const Ditto = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div>
{isFirstPage && (
<div className="relative">
<Header />
<div className="absolute inset-x-0 top-0 h-[85px] w-full bg-primary" />
</div>
)}
<div className="grid grid-cols-3">
<div className="sidebar p-custom group space-y-4">
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
<div
className={cn(
"main p-custom group space-y-4",
sidebar.length > 0 ? "col-span-2" : "col-span-3",
)}
>
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
</div>
);
};

Some files were not shown because too many files have changed in this diff Show More