├── app ├── favicon.ico ├── [not-found] │ └── page.tsx ├── api │ ├── leetcode │ │ ├── controllers │ │ │ ├── index.ts │ │ │ ├── fetchUserDetails.ts │ │ │ └── fetchDataRawFormat.ts │ │ └── userDetails │ │ │ └── route.ts │ ├── etc │ │ └── supabase-activity-scheduler │ │ │ └── route.ts │ └── auth │ │ ├── user │ │ └── route.ts │ │ └── register │ │ └── route.ts ├── styles │ └── style.css ├── auth │ ├── signin │ │ └── page.tsx │ ├── register │ │ └── page.tsx │ ├── forgot-password │ │ └── page.tsx │ ├── verify │ │ └── page.tsx │ └── reset-password │ │ └── page.tsx ├── layout.tsx ├── dashboard │ └── layout.tsx ├── not-found.tsx ├── actions │ └── action.ts ├── title.css ├── page.tsx └── globals.css ├── public ├── logo.png ├── dark-auth.jpg ├── hero-banner.png ├── light-auth.jpg ├── System-design.png ├── vercel.svg ├── window.svg ├── file.svg ├── grid.svg ├── PricingTick.svg ├── globe.svg └── next.svg ├── prisma ├── migrations │ ├── 20250108161333_usernamefix │ │ └── migration.sql │ ├── migration_lock.toml │ └── 20250108154722_init │ │ └── migration.sql └── schema.prisma ├── .env.example ├── postcss.config.mjs ├── utils ├── supabase │ ├── client.ts │ ├── server.ts │ └── middleware.ts ├── hashing.ts ├── problem.ts ├── detailedProblem.ts ├── leetcode │ ├── queryLeetCodeAPI.ts │ └── leetcodeContollers.ts └── userData.ts ├── lib ├── supabaseClient.ts ├── database │ └── prismaClient.ts ├── leetcode-calendar-theme.ts ├── utils.ts └── tags.ts ├── components ├── theme-provider.tsx ├── ui │ ├── skeleton.tsx │ ├── textarea.tsx │ ├── label.tsx │ ├── input.tsx │ ├── separator.tsx │ ├── sonner.tsx │ ├── resource-card.tsx │ ├── checkbox.tsx │ ├── tooltip.tsx │ ├── badge.tsx │ ├── support-section.tsx │ ├── avatar.tsx │ ├── alert.tsx │ ├── rainbow-button.tsx │ ├── scroll-area.tsx │ ├── tabs.tsx │ ├── button.tsx │ ├── card.tsx │ ├── accordion.tsx │ ├── shiny-button.tsx │ ├── ripple.tsx │ ├── percept-ui │ │ └── loader.tsx │ ├── hero-hihglight.tsx │ ├── background-gradient.tsx │ ├── table.tsx │ ├── navbar-menu.tsx │ ├── sparkles-text.tsx │ ├── sheet.tsx │ └── form.tsx ├── AuthComponent │ ├── AuthBottom.tsx │ ├── SearchParamsWrapper.tsx │ ├── LoadingButton.tsx │ └── Logout.tsx ├── DashboardV2 │ ├── Icons │ │ ├── XIcon.tsx │ │ ├── LinkedinIcon.tsx │ │ ├── GithubIcon.tsx │ │ └── DiscordIcon.tsx │ ├── ToggleTheme.tsx │ ├── CommunitySection.tsx │ ├── ServicesSection.tsx │ ├── HeroSection.tsx │ ├── BenefitsSection.tsx │ ├── FeaturesSection.tsx │ ├── FAQSection.tsx │ ├── FooterSection.tsx │ ├── PricingSection.tsx │ └── TeamSection.tsx ├── theme-toggle.tsx ├── HintCard.tsx └── dashboardComponents │ ├── MobileSidebar.tsx │ ├── DashboardNavbar.tsx │ └── AppSidebar.tsx ├── data └── SidebarData.ts ├── .github ├── workflows │ ├── ping.yml │ └── newContibuter.yaml ├── Pull_request_Template.md ├── ISSUE_TEMPLATE │ ├── Bug-report.yaml │ ├── General_issue.yaml │ └── Feature-Request.yaml └── FUNDING.yml ├── next.config.ts ├── eslint.config.mjs ├── Dockerfile ├── components.json ├── hooks ├── use-mobile.tsx └── useAuth.ts ├── middleware.ts ├── .gitignore ├── tsconfig.json ├── .dockerignore ├── validations └── validation.ts ├── GQL_Queries ├── recentSubmit.ts ├── recentAcSubmit.ts ├── languageStats.ts ├── contest.ts └── userProfile.ts ├── store ├── LeetcodeStore │ └── useLeetcodeStore.ts └── AuthStore │ └── useAuthStore.ts ├── package.json ├── CONTRIBUTING.md ├── README.md ├── types └── typeInterfaces.ts └── tailwind.config.ts /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yashksaini-coder/Leetcode-Journal/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yashksaini-coder/Leetcode-Journal/HEAD/public/logo.png -------------------------------------------------------------------------------- /public/dark-auth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yashksaini-coder/Leetcode-Journal/HEAD/public/dark-auth.jpg -------------------------------------------------------------------------------- /public/hero-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yashksaini-coder/Leetcode-Journal/HEAD/public/hero-banner.png -------------------------------------------------------------------------------- /public/light-auth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yashksaini-coder/Leetcode-Journal/HEAD/public/light-auth.jpg -------------------------------------------------------------------------------- /public/System-design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yashksaini-coder/Leetcode-Journal/HEAD/public/System-design.png -------------------------------------------------------------------------------- /prisma/migrations/20250108161333_usernamefix/migration.sql: -------------------------------------------------------------------------------- 1 | -- DropIndex 2 | DROP INDEX "User_leetcodeUsername_key"; 3 | -------------------------------------------------------------------------------- /app/[not-found]/page.tsx: -------------------------------------------------------------------------------- 1 | import {notFound} from "next/navigation" 2 | 3 | export default function NotFoundCatchAll() { 4 | notFound() 5 | } -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_SUPABASE_URL = supabase_url 2 | NEXT_PUBLIC_SUPABASE_ANON_KEY = supabase_anon_key 3 | DATABASE_URL = database_url -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (e.g., Git) 3 | provider = "postgresql" -------------------------------------------------------------------------------- /app/api/leetcode/controllers/index.ts: -------------------------------------------------------------------------------- 1 | export { default as fetchUserDetails } from './fetchUserDetails'; 2 | export { default as fetchDataRawFormat } from './fetchDataRawFormat'; -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /app/styles/style.css: -------------------------------------------------------------------------------- 1 | .react-calendar-heatmap .color-scale-1 { fill: #d6e685; } 2 | .react-calendar-heatmap .color-scale-2 { fill: #8cc665; } 3 | .react-calendar-heatmap .color-scale-3 { fill: #44a340; } 4 | .react-calendar-heatmap .color-scale-4 { fill: #1e6823; } -------------------------------------------------------------------------------- /utils/supabase/client.ts: -------------------------------------------------------------------------------- 1 | import { createBrowserClient } from '@supabase/ssr' 2 | 3 | export function createClient() { 4 | return createBrowserClient( 5 | process.env.NEXT_PUBLIC_SUPABASE_URL!, 6 | process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY! 7 | ) 8 | } -------------------------------------------------------------------------------- /app/auth/signin/page.tsx: -------------------------------------------------------------------------------- 1 | import SigninForm from "@/components/AuthComponent/SigninForm"; 2 | 3 | export default function SignupPage() { 4 | return ( 5 |
{description}
13 | 20 |Oops! Page does not exist.
9 |10 | What can we say, the developer is really lazy. But he might get it 11 | done if you are willing to contribute and 12 | 13 | 14 | 15 | help cover his cloud charges by sponsoring him on GitHub. 16 | 17 | 18 |
19 | 20 | Return to Home 21 | 22 |17 | Help us grow by sharing this website with your friends and colleagues! 18 |
19 |32 | Please check your inbox and click on the verification link to complete your registration. 33 | If you don't see the email, please check your spam folder. 34 |
35 |
97 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | |
28 | |
30 |
31 | |
33 |
34 | |
36 |
37 | |
39 |
40 | |
42 |
43 | |
45 |
46 | |
48 |
60 |
--------------------------------------------------------------------------------
/lib/tags.ts:
--------------------------------------------------------------------------------
1 | export const tags: Record33 | {`LeetCode Journal helps you organize your problem-solving journey, track your progress, and achieve your coding interview goals.`} 34 |
35 | 36 |49 | Lorem ipsum dolor sit amet consectetur, adipisicing elit. Non 50 | ducimus reprehenderit architecto rerum similique facere odit 51 | deleniti necessitatibus quo quae. 52 |
53 |105 | {description} 106 |
107 |163 | {body} 164 |
165 | ) 166 | }) 167 | FormMessage.displayName = "FormMessage" 168 | 169 | export { 170 | useFormField, 171 | Form, 172 | FormItem, 173 | FormLabel, 174 | FormControl, 175 | FormDescription, 176 | FormMessage, 177 | FormField, 178 | } 179 | --------------------------------------------------------------------------------