├── netlify.toml
├── .env.example
├── static
├── ads.txt
├── icon.png
├── chris-wray-family.jpg
├── Christopher-Wray-Resume.pdf
├── favicon.svg
├── web-programming.svg
└── web-programming-gray.svg
├── .netlify
└── state.json
├── assets
├── css
│ ├── tailwind.css
│ └── styles.css
└── icons
│ ├── dark.svg
│ ├── system.svg
│ └── light.svg
├── plugins
├── preview.client.js
└── README.md
├── layouts
└── default.vue
├── .prettierrc
├── jsconfig.json
├── .editorconfig
├── components
├── utils
│ └── Date.vue
├── Links
│ ├── FooterLink.vue
│ └── DesktopNavLink.vue
├── Projects
│ ├── ProjectTechnologies.vue
│ ├── ProjectLinks.vue
│ └── ProjectList.vue
├── Thoughts
│ └── ThoughtList.vue
├── General
│ ├── navbar
│ │ ├── DesktopNavLinks.vue
│ │ ├── MobileNavLinks.vue
│ │ └── Navbar.vue
│ ├── PageHeader.vue
│ ├── Dropdown.vue
│ └── Footer.vue
├── Categories
│ └── CategoryList.vue
├── Technologies
│ └── TechnologyList.vue
├── DarkModeSwitcher.vue
├── Letters
│ └── LetterList.vue
├── Posts
│ └── PostList.vue
└── Contact
│ └── ContactForm.vue
├── pages
├── README.md
├── resume
│ └── index.vue
├── posts
│ ├── index.vue
│ └── _slug.vue
├── projects
│ ├── index.vue
│ └── _slug.vue
├── categories
│ ├── index.vue
│ └── _slug.vue
├── technologies
│ ├── index.vue
│ └── _slug.vue
├── thoughts
│ └── index.vue
├── letters
│ ├── _slug.vue
│ └── index.vue
├── contact
│ └── index.vue
├── index.vue
└── privacy-policy.vue
├── .github
└── dependabot.yml
├── store
└── README.md
├── modules
└── sitemapRouteGenerator.js
├── .eslintrc.js
├── app.html
├── README.md
├── package.json
├── .gitignore
├── tailwind.config.js
└── nuxt.config.js
/netlify.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | publish = "dist"
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | API_ROUTE='http://localhost:1337'
2 | ANALYTICS_ID=''
--------------------------------------------------------------------------------
/static/ads.txt:
--------------------------------------------------------------------------------
1 | google.com, pub-5072125126275963, DIRECT, f08c47fec0942fa0
--------------------------------------------------------------------------------
/.netlify/state.json:
--------------------------------------------------------------------------------
1 | {
2 | "siteId": "2f35842b-9fc6-49b9-a49e-9d785d0525f3"
3 | }
--------------------------------------------------------------------------------
/assets/css/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/static/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cwray-tech/portfolio-frontend/HEAD/static/icon.png
--------------------------------------------------------------------------------
/static/chris-wray-family.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cwray-tech/portfolio-frontend/HEAD/static/chris-wray-family.jpg
--------------------------------------------------------------------------------
/static/Christopher-Wray-Resume.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cwray-tech/portfolio-frontend/HEAD/static/Christopher-Wray-Resume.pdf
--------------------------------------------------------------------------------
/plugins/preview.client.js:
--------------------------------------------------------------------------------
1 | export default function ({ query, enablePreview }) {
2 | if (query.preview) {
3 | enablePreview()
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/layouts/default.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 | {{ category.description }} 12 |
13 |11 | {{ technology.description }} 12 |
13 |14 | {{ subheading }} 15 |
16 |14 | {{ subheading }} 15 |
16 |26 | {{ post.preview }} 27 |
28 |18 | {{ contactPage.contact_text }} 19 |
20 |90 | {{ project.introduction }} 91 |
92 |18 | {{ home.title }} 19 |
20 |60 | {{ home.introduction_heading }} 61 |
62 |68 | {{ home.introduction }} 69 |
70 |9 | Trying to do my part in making the world a better place. 10 |
11 |12 | This site is hosted for free, so I am thanking the services I am using by adding a link 13 | to their websites here in the footer. 14 |
15 |277 | © 2020 Chris Wray. All rights reserved. 278 |
279 |Last updated: January 15, 2022
15 |16 | This Privacy Policy describes Our policies and procedures on the collection, use and 17 | disclosure of Your information when You use the Service and tells You about Your privacy 18 | rights and how the law protects You. 19 |
20 |21 | We use Your Personal data to provide and improve the Service. By using the Service, You 22 | agree to the collection and use of information in accordance with this Privacy Policy. 23 |
24 |27 | The words of which the initial letter is capitalized have meanings defined under the 28 | following conditions. 29 |
30 |31 | The following definitions shall have the same meaning regardless of whether they appear 32 | in singular or in plural. 33 |
34 |For the purposes of this Privacy Policy:
36 |123 | While using Our Service, We may ask You to provide Us with certain personally 124 | identifiable information that can be used to contact or identify You. Personally 125 | identifiable information may include, but is not limited to: 126 |
127 |Usage Data is collected automatically when using the Service.
135 |136 | Usage Data may include information such as Your Device's Internet Protocol address (e.g. 137 | IP address), browser type, browser version, the pages of our Service that You visit, the 138 | time and date of Your visit, the time spent on those pages, unique device identifiers 139 | and other diagnostic data. 140 |
141 |142 | When You access the Service by or through a mobile device, We may collect certain 143 | information automatically, including, but not limited to, the type of mobile device You 144 | use, Your mobile device unique ID, the IP address of Your mobile device, Your mobile 145 | operating system, the type of mobile Internet browser You use, unique device identifiers 146 | and other diagnostic data. 147 |
148 |149 | We may also collect information that Your browser sends whenever You visit our Service 150 | or when You access the Service by or through a mobile device. 151 |
152 |154 | We use Cookies and similar tracking technologies to track the activity on Our Service 155 | and store certain information. Tracking technologies used are beacons, tags, and scripts 156 | to collect and track information and to improve and analyze Our Service. 157 |
158 |159 | You can instruct Your browser to refuse all Cookies or to indicate when a Cookie is 160 | being sent. However, if You do not accept Cookies, You may not be able to use some parts 161 | of our Service. 162 |
163 |164 | Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on your 165 | personal computer or mobile device when You go offline, while Session Cookies are 166 | deleted as soon as You close your web browser. 167 |
168 |We use both session and persistent Cookies for the purposes set out below:
169 |The Company may use Personal Data for the following purposes:
211 |We may share your personal information in the following situations:
244 |280 | The Company will retain Your Personal Data only for as long as is necessary for the 281 | purposes set out in this Privacy Policy. We will retain and use Your Personal Data to 282 | the extent necessary to comply with our legal obligations (for example, if we are 283 | required to retain your data to comply with applicable laws), resolve disputes, and 284 | enforce our legal agreements and policies. 285 |
286 |287 | The Company will also retain Usage Data for internal analysis purposes. Usage Data is 288 | generally retained for a shorter period of time, except when this data is used to 289 | strengthen the security or to improve the functionality of Our Service, or We are 290 | legally obligated to retain this data for longer time periods. 291 |
292 |294 | Your information, including Personal Data, is processed at the Company's operating 295 | offices and in any other places where the parties involved in the processing are 296 | located. It means that this information may be transferred to — and maintained on — 297 | computers located outside of Your state, province, country or other governmental 298 | jurisdiction where the data protection laws may differ than those from Your 299 | jurisdiction. 300 |
301 |302 | Your consent to this Privacy Policy followed by Your submission of such information 303 | represents Your agreement to that transfer. 304 |
305 |306 | The Company will take all steps reasonably necessary to ensure that Your data is treated 307 | securely and in accordance with this Privacy Policy and no transfer of Your Personal 308 | Data will take place to an organization or a country unless there are adequate controls 309 | in place including the security of Your data and other personal information. 310 |
311 |314 | If the Company is involved in a merger, acquisition or asset sale, Your Personal Data 315 | may be transferred. We will provide notice before Your Personal Data is transferred and 316 | becomes subject to a different Privacy Policy. 317 |
318 |320 | Under certain circumstances, the Company may be required to disclose Your Personal Data 321 | if required to do so by law or in response to valid requests by public authorities (e.g. 322 | a court or a government agency). 323 |
324 |326 | The Company may disclose Your Personal Data in the good faith belief that such action is 327 | necessary to: 328 |
329 |338 | The security of Your Personal Data is important to Us, but remember that no method of 339 | transmission over the Internet, or method of electronic storage is 100% secure. While We 340 | strive to use commercially acceptable means to protect Your Personal Data, We cannot 341 | guarantee its absolute security. 342 |
343 |345 | Service Providers have access to Your Personal Data only to perform their tasks on Our 346 | behalf and are obligated not to disclose or use it for any other purpose. 347 |
348 |350 | We may use third-party Service providers to monitor and analyze the use of our Service. 351 |
352 |374 | We may use Your Personal Data to contact You with newsletters, marketing or promotional 375 | materials and other information that may be of interest to You. You may opt-out of 376 | receiving any, or all, of these communications from Us by following the unsubscribe link 377 | or instructions provided in any email We send or by contacting Us. 378 |
379 |We may use Email Marketing Service Providers to manage and send emails to You.
380 |394 | We may use third-party Service Providers to provide better improvement of our Service. 395 |
396 |416 | Under this Privacy Policy, and by law if You are a resident of California, You have the 417 | following rights: 418 |
419 |470 | In order to exercise any of Your rights under the CCPA, and if you are a California 471 | resident, You can email us or submit our contact form for requests. 472 |
473 |474 | The Company will disclose and deliver the required information free of charge within 45 475 | days of receiving Your verifiable request. The time period to provide the required 476 | information may be extended once by an additional 45 days when reasonable necessary and 477 | with prior notice. 478 |
479 |481 | We do not sell personal information. However, the Service Providers we partner with (for 482 | example, our advertising partners) may use technology on the Service that "sells" 483 | personal information as defined by the CCPA law. 484 |
485 |486 | If you wish to opt out of the use of your personal information for interest-based 487 | advertising purposes and these potential sales as defined under CCPA law, you may do so 488 | by following the instructions below. 489 |
490 |491 | Please note that any opt out is specific to the browser You use. You may need to opt out 492 | on every browser that you use. 493 |
494 |496 | You can opt out of receiving ads that are personalized as served by our Service 497 | Providers by following our instructions presented on the Service: 498 |
499 |506 | The opt out will place a cookie on Your computer that is unique to the browser You use 507 | to opt out. If you change browsers or delete the cookies saved by your browser, you will 508 | need to opt out again. 509 |
510 |512 | Your mobile device may give you the ability to opt out of the use of information about 513 | the apps you use in order to serve you ads that are targeted to your interests: 514 |
515 |522 | You can also stop the collection of location information from Your mobile device by 523 | changing the preferences on your mobile device. 524 |
525 |Our Service does not respond to Do Not Track signals.
529 |530 | However, some third party websites do keep track of Your browsing activities. If You are 531 | visiting such websites, You can set Your preferences in Your web browser to inform 532 | websites that You do not want to be tracked. You can enable or disable DNT by visiting 533 | the preferences or settings page of Your web browser. 534 |
535 |537 | Our Service does not address anyone under the age of 13. We do not knowingly collect 538 | personally identifiable information from anyone under the age of 13. If You are a parent 539 | or guardian and You are aware that Your child has provided Us with Personal Data, please 540 | contact Us. If We become aware that We have collected Personal Data from anyone under 541 | the age of 13 without verification of parental consent, We take steps to remove that 542 | information from Our servers. 543 |
544 |545 | We also may limit how We collect, use, and store some of the information of Users 546 | between 13 and 18 years old. In some cases, this means We will be unable to provide 547 | certain functionality of the Service to these users. 548 |
549 |550 | If We need to rely on consent as a legal basis for processing Your information and Your 551 | country requires consent from a parent, We may require Your parent's consent before We 552 | collect and use that information. 553 |
554 |556 | Our Service may contain links to other websites that are not operated by Us. If You 557 | click on a third party link, You will be directed to that third party's site. We 558 | strongly advise You to review the Privacy Policy of every site You visit. 559 |
560 |561 | We have no control over and assume no responsibility for the content, privacy policies 562 | or practices of any third party sites or services. 563 |
564 |566 | We may update our Privacy Policy from time to time. We will notify You of any changes by 567 | posting the new Privacy Policy on this page. 568 |
569 |570 | We will let You know via email and/or a prominent notice on Our Service, prior to the 571 | change becoming effective and update the "Last updated" date at the top of this Privacy 572 | Policy. 573 |
574 |575 | You are advised to review this Privacy Policy periodically for any changes. Changes to 576 | this Privacy Policy are effective when they are posted on this page. 577 |
578 |If you have any questions about this Privacy Policy, You can contact us:
580 |
584 |