Skip to content

[pull] master from yangshun:master #36

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 160 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
9bc79d3
contents: add resume steps to intro page
yangshun Feb 4, 2022
7ab3ab3
website: add sponsorship page
yangshun Feb 4, 2022
e23c75a
website: fix navbar items overflowing
yangshun Feb 4, 2022
96ed246
website: change list bullets to checkmark
yangshun Feb 4, 2022
08f97be
contents: tweak first 2 steps
yangshun Feb 4, 2022
11892f8
blog: change canonical URL
yangshun Feb 5, 2022
38d0038
blog: add post on front end vs. back end system design
yangshun Feb 5, 2022
42c21f9
contents: reorganize algorithms section
yangshun Feb 6, 2022
2004a10
contents: add best coding interview courses page
yangshun Feb 6, 2022
3e5cea6
website: change FO verify meta tag
yangshun Feb 6, 2022
3b14d55
contents: add customized study paths
yangshun Feb 6, 2022
38742a3
contents: complete company culture section
yangshun Feb 7, 2022
1cb25b0
website: add Zhenghao success story
yangshun Feb 7, 2022
82c1d3d
contents: mention AlgoMonster
yangshun Feb 8, 2022
8e7c168
website: change banner
yangshun Feb 8, 2022
366fc17
website: stop Vercel from commenting on every commit
yangshun Feb 10, 2022
0571af5
misc: change Exponent URLs
yangshun Feb 11, 2022
e9b1e51
contents: restructure best practice questions into table
yangshun Feb 11, 2022
eb51a74
website: change sidebar contents
yangshun Feb 14, 2022
2f929fb
website: remove Facebook copyright comments
yangshun Feb 14, 2022
66db839
contents: mention discount for AlgoMonster
yangshun Feb 15, 2022
a036900
website: differentiate sidebar positions
yangshun Feb 15, 2022
bc4048b
contents: switch Trie question to be before Add and Search Word
yangshun Feb 19, 2022
ef71bf1
contents: add Indeed company format. Thanks Caleb!
yangshun Feb 21, 2022
72055a6
misc: revamp partner components
yangshun Feb 21, 2022
6241a92
misc: remove unused Travis file
yangshun Feb 21, 2022
07469e3
contents: mention FTL in resume section
yangshun Feb 21, 2022
50a782a
website: use Mediavine
yangshun Feb 21, 2022
af8ac9f
website: fix broken link
yangshun Feb 22, 2022
c7f30d2
contents: list some resources for studying
yangshun Feb 22, 2022
9ed1e4f
contents: introduce some Educative interview courses
yangshun Feb 22, 2022
1764e64
contents: change intro
yangshun Feb 24, 2022
250e643
contents: optimize build speed
yangshun Mar 2, 2022
af2391a
website: change fonts approach
yangshun Mar 9, 2022
0d784a4
contents: use FAANG Tech Leads' resume checker
yangshun Mar 9, 2022
abf8341
misc: change partner taglines
yangshun Mar 10, 2022
7d2ecb8
contents: fix grammar in resume sections
yangshun Mar 11, 2022
b5edb26
website: add MSFT Imagine Cup tweet
yangshun Mar 14, 2022
f852613
website: add Carbon
yangshun Mar 16, 2022
cde6204
website: support dark mode for Carbon
yangshun Mar 16, 2022
ab9be4e
website: make React not re-render Carbon
yangshun Mar 16, 2022
ad8cc45
website: add Carbon to homepage
yangshun Mar 16, 2022
0d2c459
blog: update personal experience blogpost
yangshun Mar 17, 2022
63390da
website: render Carbon on client-side only
yangshun Mar 17, 2022
6cac000
website: change back to client-side nav
yangshun Mar 17, 2022
f0db5c9
website: remove Mediavine
yangshun Mar 17, 2022
a31247f
website: try to fix Carbon
yangshun Mar 17, 2022
af7c85b
website: make sidebar ad unit refresh periodically
yangshun Mar 17, 2022
d2fd4f6
website: try to fix Carbon again
yangshun Mar 17, 2022
f159684
website: tweak doc layout and font sizes
yangshun Mar 18, 2022
c160df7
website: embed partner placements within docs
yangshun Mar 18, 2022
7ae0250
website: fix homepage grammar issue
yangshun Mar 20, 2022
07c3797
content: fix Educative correctness
yangshun Mar 25, 2022
bc695b5
misc: fix JS errors
yangshun Mar 27, 2022
88756ed
feat: add Grind 75
yangshun Mar 30, 2022
330de2b
misc: change rewrite approach
yangshun Mar 30, 2022
f939e82
feat: add links to Grind 75
yangshun Mar 30, 2022
d12ad11
misc: add trailing slash
yangshun Mar 30, 2022
95ad40e
contents: update resume tool
yangshun Mar 30, 2022
83d8625
contents: resume worded
yangshun Mar 31, 2022
ce79ad0
contents: revamp basic algo content
yangshun Apr 2, 2022
1c7b919
contents: stop recommending TopResume
yangshun Apr 3, 2022
835eb4d
website: upgrade to docusaurus@2.0.0-beta.18
yangshun Apr 3, 2022
e90ed3e
website: change Algolia API key
yangshun Apr 3, 2022
31090de
website: don't add trailing slash
yangshun Apr 4, 2022
f517bd2
misc: change marketing taglines
yangshun Apr 4, 2022
21f60e3
fix: change trailing slash config to false
yangshun Apr 5, 2022
87effdb
Revert "website: don't add trailing slash"
yangshun Apr 5, 2022
3e76a59
Revert "fix: change trailing slash config to false"
yangshun Apr 5, 2022
1f01739
contents: fix broken link
yangshun Apr 5, 2022
0acd674
website: remove CarbonAds
yangshun Apr 5, 2022
73dd64f
contents: rearrange algo layout structure
yangshun Apr 6, 2022
2f4500c
contents: fix broken MDX in negotiation article
yangshun Apr 6, 2022
6e47fce
blog: fix canonical urls showing up on unintended pages
yangshun Apr 8, 2022
7eccc0d
website: add sidebar structure
yangshun Apr 6, 2022
a6918b2
misc: add redirects
yangshun Apr 8, 2022
fdc1009
Update coding-interview-best-practices.md
yangshun Apr 8, 2022
54b3178
website: update partners
yangshun Apr 10, 2022
9949086
contents: integrate best-practice-questions into rest of the docs
yangshun Apr 10, 2022
2ab481b
blog: fix canonical URLs
yangshun Apr 10, 2022
f95b055
contents: rename coding interview best practices page to cheatsheet
yangshun Apr 10, 2022
3b177fa
contents: complete coding interview techniques optimization section
yangshun Apr 10, 2022
bd10d88
misc: fix redirects
yangshun Apr 10, 2022
95b2348
misc: update sidebar labels
yangshun Apr 11, 2022
550d8c7
contents: fix typo in programming languages page (#268)
zahidhasanpapon Apr 14, 2022
b1995c9
misc: remove old study and practice page
yangshun Apr 15, 2022
d74a910
feat: improve readability
yangshun Apr 15, 2022
1f7566b
Merge branch 'master' of github.com:yangshun/tech-interview-handbook …
yangshun Apr 15, 2022
ef73e35
marketing: add IG profile
yangshun Apr 15, 2022
e67915d
contents: std::map is not a hash-table (#269)
Dantsz Apr 20, 2022
546d0d5
contents: fix incorrect rubrics tables
yangshun Apr 21, 2022
d9ac37f
seo: fix reported issues
yangshun Apr 24, 2022
3211190
contents: add promotional content within contents
yangshun Apr 29, 2022
2394d5d
website: increase horizontal spacing around docs content
yangshun Apr 29, 2022
0f1b9f9
website: update typography
yangshun Apr 29, 2022
e51327b
contents: reorganize algo cheatsheet
yangshun Apr 29, 2022
d8ef797
contents: revert questions to ask
yangshun Apr 29, 2022
e7ffec6
contents: add back links to old articles under misc
yangshun Apr 29, 2022
5fec9d6
blog: add resume case study
yangshun Apr 29, 2022
b412176
contents: add links to orphaned pages
yangshun Apr 29, 2022
97c41f0
feat: change banner to Design Gurus
yangshun May 1, 2022
4b3f845
feat: use brand colors for product placements
yangshun May 1, 2022
44d19cf
feat: add Zhenghao's blog posts
yangshun May 3, 2022
6131f64
website: add Rosa's success story
yangshun May 5, 2022
2936f03
website: migrate to GA4
yangshun May 8, 2022
8f98835
website: add GH stars to doc page
yangshun May 8, 2022
5e137e2
Revert "website: add Rosa's success story"
yangshun May 10, 2022
75c7529
seo: add social image
yangshun May 11, 2022
76ebfaf
blog: update experience post
yangshun May 11, 2022
d9785ce
misc: marketing
yangshun May 13, 2022
d90f358
contents(algo): fix typo in matrix cheat sheet (#273)
jasonmustafa May 13, 2022
87a9230
contents(algo): fix typo and suggestions (#272)
jomosz May 13, 2022
016f125
contents(algo): split recommended qns into essential vs practice
yangshun May 13, 2022
df976b7
contents(algo): update to latest Grind 75 order
yangshun May 14, 2022
a513842
website: add back UA
yangshun May 14, 2022
c696505
contents(algo): fix typo in math cheat sheet (#276)
jasonmustafa May 18, 2022
23a7c81
website: omit double "and" on home page (#278)
rzmk May 28, 2022
30efd69
contents: update interviewer cheatsheet
yangshun May 31, 2022
f1b4cdc
content: fix typo in Queue questions
yangshun May 31, 2022
c90dc49
website: revert banner
yangshun Jun 2, 2022
809c3ea
contents: fix typos in hash table cheatsheet (#280)
jeromepui Jun 3, 2022
b649fe0
contents: fix typo and grammar in study cheatsheet (#279)
jeromepui Jun 3, 2022
16d3579
website: make docs title more readable on mobile
yangshun Jun 11, 2022
b5befc0
misc: s/Educative/Design Gurus
yangshun Jun 11, 2022
a6bcb0e
website: add Netflix success story
yangshun Jun 11, 2022
f2b2d6b
website: upgrade to docusaurus@2.0.0-beta.21
yangshun Jun 11, 2022
5d4af9d
contents: fix broken algo topic links
yangshun Jun 11, 2022
6420341
contents: misc casing fixes
yangshun Jun 11, 2022
1cdf44a
contents: fix min stack difficulty (#285)
evaporei Jul 2, 2022
eeab673
misc: update question groups
yangshun Jul 2, 2022
02aa147
website: add legacy redirect
yangshun Jul 3, 2022
5d9d952
blog: add post "Getting a Tech Job as an Undergraduate" (#286)
caramelmelmel Jul 10, 2022
76eac28
contents: add some links for public engineering levels
yangshun Jul 10, 2022
09fe9d5
blog: fix broken link
yangshun Jul 10, 2022
2a2a803
website: add Discord link
yangshun Jul 10, 2022
41de7b8
website: add ByteByteGo
yangshun Jul 11, 2022
bbefdc4
website: upgrade to docusaurus@2.0.0-rc-1
yangshun Jul 9, 2022
68ab733
misc: update README
yangshun Jul 17, 2022
0209ea7
algorithms: fix string split time complexity
yangshun Jul 17, 2022
ebaf817
blog: update Zhenghao's title
yangshun Jul 31, 2022
bfd3a95
website: update icons
yangshun Jul 31, 2022
0a7d781
website: add Rahul Senguttuvan's success story (#293)
RahulSenguttuvan Aug 2, 2022
f217646
website: update footer links
yangshun Aug 3, 2022
1e83277
website: use clsx instead of classnames
yangshun Aug 4, 2022
51b44fb
contents: add links to resume partners
yangshun Aug 8, 2022
8c85cec
website: add Jeanne Toh's success story (#294)
jeannetoh99 Aug 13, 2022
85a8ec7
website: fix broken Tweet images
yangshun Aug 21, 2022
c1fa71a
contents: fix typo in results for STAR behavioral section
yangshun Aug 23, 2022
4adb491
website: change marketing message
yangshun Aug 23, 2022
3c1ce16
website: add links to Front End Interview Handbook
yangshun Sep 7, 2022
f062cb5
contents: update maximum-subarray difficulty to medium
yangshun Sep 11, 2022
9757e36
contents: add link to study plan
yangshun Sep 11, 2022
0bf2a01
contents: add more links to various pages
yangshun Sep 13, 2022
03303a2
contents: fix typo in array cheatsheet (#299)
Deeds67 Sep 17, 2022
4beb2ac
chore: delete useless files
yangshun Sep 29, 2022
598a0dc
chore: format files
yangshun Sep 29, 2022
27a82e8
website: change formatting
yangshun Sep 29, 2022
523d91f
feat: scaffold monorepo
yangshun Sep 29, 2022
dee6094
feat: add application shell
yangshun Sep 29, 2022
fa1dc71
chore: fix package lock
yangshun Sep 30, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.DS_Store
node_modules
.turbo
*.log
.next
dist
dist-ssr
*.local
.env
.cache
server/dist
public/dist
.turbo
8 changes: 0 additions & 8 deletions .gitpod.yml

This file was deleted.

27 changes: 27 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
node_modules
.next
build
dist
*.tsbuildinfo
*.gitignore
*.svg
*.lock
*.npmignore
*.sql
*.png
*.jpg
*.jpeg
*.gif
*.ico
*.sh
Dockerfile
Dockerfile.*
.env
.env.*
LICENSE
*.log
.DS_Store
.dockerignore
*.patch
*.toml
*.prisma
3 changes: 1 addition & 2 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"bracketSpacing": false,
"jsxBracketSameLine": true,
"bracketSameLine": true,
"printWidth": 80,
"proseWrap": "never",
"singleQuote": true,
Expand Down
5 changes: 0 additions & 5 deletions .travis.yml

This file was deleted.

19 changes: 19 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
"cSpell.autoFormatConfigFile": true,
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
"javascript.format.enable": true,
"json.format.enable": true,
"eslint.format.enable": false,
"css.format.enable": true,
"css.format.newlineBetweenRules": true,
"css.format.newlineBetweenSelectors": true,
"css.format.preserveNewLines": true,
"typescript.format.enable": true,
"editor.codeActionsOnSave": {
"source.fixAll": true
}
}
51 changes: 37 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,36 @@

<div align="center">
<a href="https://www.techinterviewhandbook.org/">
<img src="website/static/img/logo.svg" alt="Tech Interview Handbook" width="400">
<img src="website/static/img/logo.svg" alt="Tech Interview Handbook" width="400" />
</a>
<br />
<h3>
<a href="https://www.techinterviewhandbook.org/">Read on the website</a>
</h3>
<p>
Follow us on <a href="https://facebook.com/techinterviewhandbook">Facebook</a> | <a href="https://twitter.com/techinterviewhb">Twitter</a> | <a href="https://t.me/techinterviewhandbook">Telegram</a>
Join/follow us on <a href="https://discord.gg/usMqNaPczq" target="_blank">Discord</a> | <a href="https://twitter.com/techinterviewhb" target="_blank">Twitter</a> | <a href="https://t.me/techinterviewhandbook" target="_blank">Telegram</a> | <a href="https://facebook.com/techinterviewhandbook" target="_blank">Facebook</a>
</p>
</div>

---

<a href="https://www.techinterviewhandbook.org/software-engineering-interview-guide/" target="_blank">
<img src="assets/start-reading-button.jpg" alt="Start Reading Tech Interview Handbook" />
</a>

## What is this?

Not everyone has the time to do a few hundred LeetCode questions. Here are _free and curated_ technical interview preparation materials for busy engineers, brought to you by the author of the [Blind 75 list](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU). Over 500,000 people have benefitted from this handbook!
Not everyone has the time to do a few hundred LeetCode questions. Here are _free and curated_ technical interview preparation materials for busy engineers, brought to you by me, the author of [Blind 75](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU). Over 500,000 people have benefitted from this handbook!

Besides the usual algorithm questions, other **awesome** stuff includes:

- [Best practice questions](https://techinterviewhandbook.org/best-practice-questions/) for coding interviews
- [How to prepare](https://www.techinterviewhandbook.org/coding-interview/) for coding interviews
- [Coding interview cheatsheet](https://www.techinterviewhandbook.org/cheatsheet/) - Straight-to-the-point Do's and Don'ts
- [Algorithm tips](https://www.techinterviewhandbook.org/algorithms/introduction/) categorized by topic
- [Interview formats](https://www.techinterviewhandbook.org/interview-formats/) of the top tech companies
- [Step-by-step resume guide](https://www.techinterviewhandbook.org/resume/guide/) to prepare a FAANG-ready resume
- [Behavioral questions](https://www.techinterviewhandbook.org/behavioral-questions/) asked by the top tech companies
- [Good questions to ask your interviewers](https://www.techinterviewhandbook.org/questions-to-ask/) at the end of the interviews
- [Best practice questions](https://www.techinterviewhandbook.org/coding-interview-study-plan/) for coding interviews
- [Grind 75](https://www.techinterviewhandbook.org/grind75) - the next evolution of Blind 75, bigger and better
- [How to prepare](https://www.techinterviewhandbook.org/coding-interview-prep/) for coding interviews
- [Coding interview best practices](https://www.techinterviewhandbook.org/coding-interview-cheatsheet/) - Straight-to-the-point Do's and Don'ts
- [Algorithm cheatsheets and tips](https://www.techinterviewhandbook.org/algorithms/study-cheatsheet/) categorized by topic
- [Step-by-step Software Engineer resume guide](https://www.techinterviewhandbook.org/resume/) to prepare a FAANG-ready resume
- [Behavioral questions](https://www.techinterviewhandbook.org/behavioral-interview-questions/) asked by the top tech companies
- [Front end interview preparation](https://www.frontendinterviewhandbook.com)

Help from you in contributing content would be very much appreciated!
Expand All @@ -46,29 +49,49 @@ Anybody who wants to land a job at a tech company but is new to technical interv
---

<div align="center">
<h3>💡 Looking for high-quality interview courses? <a href="https://www.educative.io/explore?search_string=interview&aff=x23W">Educative</a> offers a ton of great courses to improve your interview game 💡</h3>
<h3>💡 Stop grinding mindlessly! Study coding question patterns efficiently with
<a href="https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview">Grokking the Coding Interview</a> by Design Gurus 💡
</h3>
</div>

---

## How is this repository different?

There are many awesome books like [Cracking the Coding Interview](http://www.crackingthecodinginterview.com/) and interview-related repositories out there on GitHub, what makes this repository different? The difference is that many existing interview repositories contain mainly links to external resources whereas this repository contains top-quality curated content directly for your consumption.
There are many awesome books like "Cracking the Coding Interview" and interview-related repositories out there on GitHub, what makes this repository different? The difference is that many existing interview repositories contain mainly links to external resources whereas this repository contains top-quality curated content directly for your consumption.

Also, existing resources focus mainly on algorithm questions and lack coverage for more domain-specific and non-technical questions. This handbook aims to cover content beyond the typical algorithmic coding questions. 😎

## Looking for interview courses?

### [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)

AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)

### [Grokking the Coding Interview: Patterns for Coding Questions](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)

This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)

## Looking for Front End content?

Front-end-related content has been moved to a separate website - [Front End Interview Handbook](https://frontendinterviewhandbook.com).

## Looking for System Design content?

We're still working on System Design content. In the meanwhile, check out Educative's [Grokking the System Design Interview course](https://www.educative.io/courses/grokking-the-system-design-interview?aff=x23W), which in our opinion is one of the most useful resources for getting started on system design interviews preparation.
We're still working on System Design content. In the meanwhile, check out [ByteByteGo's System Design Interview course](https://bytebytego.com?fpr=techinterviewhandbook) or Design Gurus' [Grokking the System Design Interview course](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-system-design-interview), which in our opinion are among the most useful resources for getting started on system design interviews preparation.

## Contents

A [Docusaurus](https://github.com/facebook/docusaurus) website has been created to provide a better reading experience. Check out the website [here](https://www.techinterviewhandbook.org)!

---

<div align="center">
<h3>💡 Stop the grind and study with a plan! Developed by Google engineers, <a href="https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=">AlgoMonster</a> is the fastest way to get a software engineering job. <a href="https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=">Join today for a 70% discount!</a> 💡</h3>
</div>

---

## Related

If you are interested in how data structures are implemented, check out [Lago](https://github.com/yangshun/lago), a Data Structures and Algorithms library for JavaScript. It is pretty much still WIP but I intend to make it into a library that can be used in production and also a reference resource for revising Data Structures and Algorithms.
Expand Down
2 changes: 1 addition & 1 deletion algorithms/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Algorithms

The contents have been moved to the [website](https://www.techinterviewhandbook.org/algorithms/introduction).
The contents have been moved to the [website](https://www.techinterviewhandbook.org/algorithms/study-cheatsheet).

<!-- TODO: Remove in future -->
10 changes: 10 additions & 0 deletions apps/portal/.env.local.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Prisma
DATABASE_URL=postgresql://postgres:[PASSWORD]@localhost:5432/postgres

# Next Auth
NEXTAUTH_SECRET=any_string_you_wish
NEXTAUTH_URL=http://localhost:3000

# Next Auth GitHub Provider
GITHUB_CLIENT_ID=a5164b1943b5413ff2f5
GITHUB_CLIENT_SECRET=
8 changes: 8 additions & 0 deletions apps/portal/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
root: true,
extends: ['tih'],
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
},
};
40 changes: 40 additions & 0 deletions apps/portal/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# database
/prisma/db.sqlite
/prisma/db.sqlite-journal

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
50 changes: 50 additions & 0 deletions apps/portal/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Create T3 App

This is an app bootstrapped according to the [init.tips](https://init.tips) stack, also known as the T3-Stack.

## Why are there `.js` files in here?

As per [T3-Axiom #3](https://github.com/t3-oss/create-t3-app/tree/next#3-typesafety-isnt-optional), we take typesafety as a first class citizen. Unfortunately, not all frameworks and plugins support TypeScript which means some of the configuration files have to be `.js` files.

We try to emphasize that these files are javascript for a reason, by explicitly declaring its type (`cjs` or `mjs`) depending on what's supported by the library it is used by. Also, all the `js` files in this project are still typechecked using a `@ts-check` comment at the top.

## What's next? How do I make an app with this?

We try to keep this project as simple as possible, so you can start with the most basic configuration and then move on to more advanced configuration.

If you are not familiar with the different technologies used in this project, please refer to the respective docs. If you still are in the wind, please join our [Discord](https://t3.gg/discord) and ask for help.

- [Next-Auth.js](https://next-auth.js.org)
- [Prisma](https://prisma.io)
- [TailwindCSS](https://tailwindcss.com)
- [tRPC](https://trpc.io) (using @next version? [see v10 docs here](https://trpc.io/docs/v10/))

Also checkout these awesome tutorials on `create-t3-app`.

- [Build a Blog With the T3 Stack - tRPC, TypeScript, Next.js, Prisma & Zod](https://www.youtube.com/watch?v=syEWlxVFUrY)
- [Build a Live Chat Application with the T3 Stack - TypeScript, Tailwind, tRPC](https://www.youtube.com/watch?v=dXRRY37MPuk)
- [Build a full stack app with create-t3-app](https://www.nexxel.dev/blog/ct3a-guestbook)
- [A first look at create-t3-app](https://dev.to/ajcwebdev/a-first-look-at-create-t3-app-1i8f)

## How do I deploy this?

### Vercel

We recommend deploying to [Vercel](https://vercel.com/?utm_source=t3-oss&utm_campaign=oss). It makes it super easy to deploy NextJs apps.

- Push your code to a GitHub repository.
- Go to [Vercel](https://vercel.com/?utm_source=t3-oss&utm_campaign=oss) and sign up with GitHub.
- Create a Project and import the repository you pushed your code to.
- Add your environment variables.
- Click **Deploy**
- Now whenever you push a change to your repository, Vercel will automatically redeploy your website!

### Docker

You can also dockerize this stack and deploy a container. See the [Docker deployment page](https://create-t3-app-nu.vercel.app/en/deployment/docker) for details.

## Useful resources

Here are some resources that we commonly refer to:

- [Protecting routes with Next-Auth.js](https://next-auth.js.org/configuration/nextjs#unstable_getserversession)
5 changes: 5 additions & 0 deletions apps/portal/next-env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
21 changes: 21 additions & 0 deletions apps/portal/next.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { env } from './src/env/server.mjs';

/**
* Don't be scared of the generics here.
* All they do is to give us autocompletion when using this.
*
* @template {import('next').NextConfig} T
* @param {T} config - A generic parameter that flows through to the return type
* @constraint {{import('next').NextConfig}}
*/
function defineNextConfig(config) {
return config;
}

export default defineNextConfig({
experimental: {
newNextLinkBehavior: true,
},
reactStrictMode: true,
swcMinify: true,
});
51 changes: 51 additions & 0 deletions apps/portal/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"name": "@tih/portal",
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"tsc": "tsc",
"postinstall": "prisma generate",
"prisma": "prisma"
},
"dependencies": {
"@headlessui/react": "^1.7.2",
"@heroicons/react": "^2.0.11",
"@next-auth/prisma-adapter": "^1.0.4",
"@prisma/client": "^4.4.0",
"@tih/ui": "*",
"@trpc/client": "^9.27.2",
"@trpc/next": "^9.27.2",
"@trpc/react": "^9.27.2",
"@trpc/server": "^9.27.2",
"clsx": "^1.2.1",
"next": "12.3.1",
"next-auth": "~4.10.3",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-query": "^3.39.2",
"superjson": "^1.10.0",
"zod": "^3.18.0"
},
"devDependencies": {
"@tailwindcss/aspect-ratio": "^0.4.2",
"@tailwindcss/forms": "^0.5.3",
"@tailwindcss/line-clamp": "^0.4.2",
"@tailwindcss/typography": "^0.5.7",
"@tih/tsconfig": "*",
"@types/node": "^18.0.0",
"@types/react": "^18.0.21",
"@types/react-dom": "^18.0.6",
"autoprefixer": "^10.4.12",
"postcss": "^8.4.16",
"prisma": "^4.4.0",
"tailwindcss": "^3.1.8",
"typescript": "4.8.3"
},
"ct3aMetadata": {
"initVersion": "5.13.1"
}
}
6 changes: 6 additions & 0 deletions apps/portal/postcss.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
Loading