ව්යාපෘති දළ විශ්ලේෂණය: Full-Stack Blog හෝ Notes යෙදුම
මෙම ව්යාපෘතියේ අරමුණ වන්නේ, ඔබ පෙර modules 9 පුරාවටම ඉගෙනගත් සංකල්ප ප්රායෝගිකව යොදාගැනීමයි. ඔබට කැමති මාතෘකාවක් තෝරාගත හැක - සරල Blog එකක්, To-Do List එකක්, නැතහොත් ব্যক্তিগত Notes තබාගැනීමේ යෙදුමක්. ප්රධානම දේ වන්නේ පහත සඳහන් තාක්ෂණයන් සහ features එහි අඩංගු වීමයි.
මෙය ඔබගේ portfolio එකට එකතු කරගත හැකි, ඔබගේ Next.js ችሎታ පෙන්වන කදිම නිර්මාණයක් වනු ඇත.
අනිවාර්ය Features (Core Requirements)
- Module 7 Authentication: පරිශීලකයින්ට register වීමට සහ login/logout වීමට හැකි විය යුතුය. අපි මේ සඳහා NextAuth.js භාවිතා කරමු.
- Module 6 CRUD API Routes: Login වූ පරිශීලකයින්ට Posts/Notes නිර්මාණය කිරීමට (Create), බැලීමට (Read), යාවත්කාලීන කිරීමට (Update), සහ මැකීමට (Delete) හැකි විය යුතුය. මේ සඳහා අපි Next.js API Routes ගොඩනගමු.
- Module 4, 5 Database Integration: දත්ත ස්ථිරව තැන්පත් කිරීමට database එකක් භාවිතා කළ යුතුය. MongoDB Atlas (Mongoose සමග), Supabase (PostgreSQL), හෝ PlanetScale (MySQL) වැනි නොමිලේ ලබා දෙන cloud database එකක් භාවිතා කිරීම වඩාත් සුදුසුය.
- Module 3 Styling: යෙදුමේ UI එක Tailwind CSS භාවිතයෙන් අලංකාරවත්ව නිර්මාණය කළ යුතුය. Responsive design (mobile-friendly) بودن අනිවාර්ය වේ.
- Module 2 Routing: සියලුම posts පෙන්වන පිටුවක් (`/posts`), එක් post එකක් පෙන්වන dynamic පිටුවක් (`/posts/[id]`), සහ නව post එකක් සාදන පිටුවක් (`/posts/new`) වැනි routes තිබිය යුතුය.
- Module 9 Deployment: අවසන් යෙදුම Vercel වෙත deploy කර, සජීවී URL එකක් ලබා ගත යුතුය.
ව්යාපෘතිය නිම කිරීමට යෝජිත පියවර (Suggested Steps)
-
Project Setup:
`npx create-next-app@latest my-final-project --typescript --tailwind --eslint` command එක භාවිතයෙන් Tailwind CSS සමඟ නව Next.js project එකක් සාදාගන්න. ඉන්පසු එය GitHub repository එකකට push කරන්න.
-
Database සහ Schema Setup:
ඔබ තෝරාගත් cloud database provider (උදා: MongoDB Atlas) හි account එකක් සාදා, database එකක් නිර්මාණය කරගන්න. Prisma වැනි ORM (Object-Relational Mapper) එකක් භාවිතා කර `User` සහ `Post` (or `Note`) සඳහා schema (models) නිර්මාණය කරගන්න. Prisma මගින් database migrations සහ type-safe queries සිදු කිරීම ඉතා පහසු කරයි.
-
Authentication (NextAuth.js):
NextAuth.js install කර, `[...nextauth].js` file එක සකසන්න. Credentials Provider (email/password) සහ GitHub/Google වැනි OAuth provider එකක් හෝ දෙකක් එකතු කරන්න. Register/Login UI එක නිර්මාණය කරන්න.
-
API Routes (CRUD):
`/api/posts` සහ `/api/posts/[id]` වැනි API endpoints නිර්මාණය කරන්න. එක් එක් endpoint එකේදී, අදාළ HTTP method එකට (`GET`, `POST`, `PUT`, `DELETE`) අනුව database එක සමඟ communicate කිරීමට Prisma Client එක භාවිතා කරන්න. API routes, `getSession` භාවිතයෙන් ආරක්ෂා කිරීමට අමතක නොකරන්න.
-
Frontend Pages සහ Components:
UI එක ගොඩනගන්න.
- Layout: Navbar සහ Footer සහිත ප්රධාන layout එකක් සාදන්න. Navbar එකේ login status එකට අනුව "Login" හෝ "Logout" button එකක් පෙන්වන්න.
- Post List Page (`/posts`): `getServerSideProps` හෝ `getStaticProps` භාවිතයෙන් සියලුම posts fetch කර පෙන්වන්න.
- Single Post Page (`/posts/[id]`): අදාළ post එකේ සම්පූර්ණ විස්තර පෙන්වන්න. Post එකේ හිමිකරුට පමණක් "Edit" සහ "Delete" buttons පෙනෙන සේ සකසන්න.
- New/Edit Post Form: Post එකක් සෑදීමට සහ edit කිරීමට form එකක් සහිත component එකක් සාදන්න. Form submission එකේදී, `fetch` API එක භාවිතයෙන් අපේ backend API routes වලට `POST` හෝ `PUT` requests යවන්න.
-
Deployment:
GitHub repository එක Vercel වෙත import කරන්න. Database connection string සහ NextAuth secret වැනි Environment Variables ටික Vercel project settings වලට එකතු කරන්න. Deploy කර, ඔබේ සජීවී යෙදුම ලෝකය සමඟ බෙදාගන්න!
ඔබට සුභ පැතුම්!
මෙම පාඨමාලාව සාර්ථකව නිම කිරීම ගැන ඔබට අපගේ උණුසුම් සුභ පැතුම්! ඔබ දැන් React සහ Next.js හි මූලික සිද්ධාන්ත වල සිට, full-stack යෙදුමක් ගොඩනගා, එය deploy කරන මට්ටම දක්වා විශාල දැනුමක් ලබාගෙන ඇත.
මෙම ව්යාපෘතිය අභියෝගයක් ලෙස සලකා, නිර්මාණශීලීව සිතා, ඔබ ඉගෙනගත් සියලු දේ යොදාගනිමින් එය නිම කරන්න. මතක තබා ගන්න, හොඳම ඉගෙනුම ලැබෙන්නේ ප්රායෝගිකව යමක් ගොඩනැගීමෙනි.
Keep building, keep learning!