feat(dev): Initial release v1.0.0 to main [#1]#3
Merged
dileepadev merged 1 commit intomainfrom Mar 2, 2026
Merged
Conversation
* docs(repo): Add Copilot instructions (refs #1) This adds the .github/copilot-instructions.md file to define project-specific coding guidelines, templates, and behaviors for GitHub Copilot. * chore(repo): Initialize Next.js project (refs #1) This sets up the initial project structure using Next.js 15 with the App Router, including: - TypeScript configuration - Tailwind CSS and PostCSS integration - ESLint flat configuration - Initial layout and page components * chore(repo): Update project metadata in package.json (refs #1) This adds the project description, author information, license details, repository URL, and homepage link to the package configuration. * feat(repo): Initialize project structure and core layout (refs #1) - Configure Next.js App Router with (dashboard) and (auth) route groups - Set up Prettier, Lucide React, and Tailwind utilities (clsx, tailwind-merge) - Implement core layout components: Sidebar and Header - Scaffold required admin pages (about, experiences, tools, etc.) - Add environment configuration and type declarations * style(ui): Update global CSS with black variant theme (refs #1) * feat(auth): Implement authentication system with login, logout, and session management (refs #1) Added comprehensive authentication system for admin users including: - Secure login form with validation using Zod - Session management with HTTP-only cookies - Middleware for route protection - Logout functionality in sidebar - Integration with existing NestJS API * feat(about): Implement about management with full CRUD operations (refs #1) Added comprehensive about section management to the admin dashboard including: - Complete about data form with validation using Zod - Dynamic arrays for description paragraphs and connect messages - Image URL management (banner and profile images) - Social links management (GitHub, LinkedIn, X/Twitter, Instagram, YouTube) - Server actions for fetching and updating about data - Centralized API logic in app/actions directory - Fixed Zod deprecation warnings with modern validation patterns - Responsive design with black theme integration * feat(experiences): Implement experiences management with full CRUD operations (refs #1) - Added server actions for CRUD operations on experiences - Implemented Zod validation for form data - Created responsive form component with dynamic technology fields - Built list view with edit/delete functionality - Integrated Next.js revalidation for UI updates - Added proper authentication and error handling * feat(educations): Implement educations management with full CRUD operations (refs #1) - Added server actions for CRUD operations on educations - Implemented Zod validation for education form data - Created responsive form component for education entries - Built list view with edit/delete functionality - Integrated Next.js revalidation for UI updates - Added proper authentication and error handling * feat(events): Implement events management with full CRUD operations (refs #1) - Added server actions for CRUD operations on events - Implemented Zod validation for event form data - Created responsive form component with date picker and format selector - Built list view with event details and icons - Integrated Next.js revalidation for UI updates - Added proper authentication and error handling * feat(videos): Implement videos management with full CRUD operations (refs #1) - Add server actions for videos CRUD operations with Zod validation - Create video form component with title, date, and link fields - Implement videos list component with edit/delete functionality - Update videos page to display the management interface - Follow consistent UI patterns from other admin sections * feat(blogs): Implement blogs mangement with full CRUD operations (refs #1) - Add server actions for blogs CRUD operations with Zod validation - Create blog form component with title, date, excerpt, and link fields - Implement blogs list component with edit/delete functionality and excerpt display - Update blogs page to display the management interface - Follow consistent UI patterns from other admin sections * feat(communities): Implement communities management with full CRUD operations (refs #1) - Added server actions for communities with Zod validation - Created community form with nested logo validation - Implemented responsive list view for communities - Integrated ActionState for type-safe server actions * feat(tools): Implement tools management with full CRUD operations (refs #1) - Added server actions for tools with light/dark logo support - Created tool form component with validation - Built responsive tools list view - Integrated tools management into dashboard * feat(ui): Add dark mode toggle to sidebar (refs #1) - Installed next-themes - Added ThemeProvider component - Wrapped application in ThemeLayout - Added theme toggle button to Sidebar - Configured globals.css for class-based dark mode * feat(dashboard): Show resource counts on dashboard (refs #1) * feat(events): Add sort toggle for events list (refs #1) - Add sort toggle button to switch ascending/descending by date - Sort events on load and when toggled - UI shows current order with chevron icon * feat(blogs): Add sort toggle for blogs list (refs #1) - Add sort toggle button to switch ascending/descending by date - Sort blogs on load and when toggled - UI shows current order with chevron icon * feat(videos): Add sort toggle for videos list (refs #1) - Add sort toggle button to switch ascending/descending by date - Sort videos on load and when toggled - UI shows current order with chevron icon * chore(admin): Format dates to ISO (YYYY-MM-DD) in admin UI and forms (refs #1) - Display dates as YYYY-MM-DD in lists (events, blogs, videos) - Use ISO yyyy-MM-dd for date input default values in forms (event/blog/video) - Keep sorting and submission consistent with ISO dates * chore(config): Add missing API_URL to env example file (refs #1) * feat(about): Add facebook link (refs #1) * feat(ui): Apply brand theme (refs #1) * feat(ui): Update login UI and add public files (refs #1) * feat(ui): Display preview for image urls (refs #1) * feat(media): Add Admin upload UI and server action (refs #1) - Add server action to proxy uploads to the API with auth - Add UploadPage with preview, copy/delete, and media library fetch - Improve error handling and file validation (type + size) * feat(admin): Add image upload to admin forms (refs #1) Add `ImageUploadField` component for client-side image selection, upload and preview. Integrate with `uploadImage` server action to upload images to Cloudinary and populate form URL fields automatically. Replace manual logo/thumbnail URL inputs with upload fields across Experience, Education, Communities, Tools, Videos and About forms; add upload progress, error handling, and clear/remove actions. * fix(actions): Relax URL validation & harden admin URL handling (refs #1) Make url optional in Experience/Education DTOs to prevent rejection of empty values. Harden admin-side isValidUrl to require a string and http(s) protocol. Add payload logging for create/update experience actions to surface API validation errors for easier debugging. * feat(community): Add community url (refs #1) * feat(session): Auto sign-out on token expiry and broadcast server logout (refs #1) Parse JWT 'exp' and set session cookie TTL and client-visible 'session_expires' cookie for scheduling Add short-lived 'signed_out_broadcast' cookie + broadcastSignOut() for server-initiated logout Add /api/auth/logout route and SessionWatcher client component to auto-logout on expiry, 401 responses, and cross-tab sync Update deleteSession to clear expiry cookie; call broadcast on logout * refactor(auth): Rename login -> sign-in and logout -> sign-out (refs #1) Rename auth routes and actions to use 'sign-in'/'sign-out'; update client redirects, proxy logic, SessionWatcher, Sidebar and API route paths to maintain consistent naming and avoid broken redirects. * fix(auth): Prevent infinite reload on sign-in when session expires (refs #1) Stop SessionWatcher redirect/loop when already on /sign-in.\nIgnore 401s from /api/auth/sign-out to avoid recursive sign-out.\nClear client-side session cookies on sign-out to avoid retriggering.\nRename proxy.ts -> middleware.ts to enable Next.js middleware and enforce server-side auth redirects. * fix(auth): Resolve session expiration and rate limit issues (refs #1) Prevent infinite reload on sign-in page when session expires.\nAdd retry logic with exponential backoff for API rate limits (blogs, communities, tools).\nFix TypeError in SessionWatcher URL handling.\nEnsure sidebar fills full viewport height.\nRename proxy.ts to middleware.ts for proper Next.js middleware activation. * chore(proxy): Migrate middleware.ts -> proxy.ts (refs #1) * feat(forms): Add form validation and required (refs #1) * feat(forms): Add toasts and custom alert boxes (refs #1) * feat(navbar): Add new navbar (refs #1) * feat(sort): Add a priority index to documents for sorting purposes (refs #1) * feat(sort): Add a priority index to documents for sorting purposes (refs #1) * fix(admin): Require Banner URL in blog form and surface API validation (refs #1) Make `bannerUrl` required in the admin form and forward API validation errors to the UI to prevent silent update failures. * feat(ui): Show app version in sidebar (refs #1) Import version from package.json and display it in the sidebar footer above theme and sign-out controls. * feat(about): Add status field to admin About form and validation (refs #1) * feat(events): Add event url (refs #1) * docs(.github): Update commit prompt and copilot instructions * chore(public): Refresh public assets (refs #1) Replaced outdated assets in the public directory: - banner.webp - favicon.ico - profile.png - profile.webp * chore(ui): Update favicon.ico to reflect the latest design changes (refs #1) * chore(env): Update API URLs and remove NextAuth variables in .env.example (refs #1) - Updated NEXT_PUBLIC_API_URL and API_URL to use production URLs. - Removed NEXTAUTH_URL and NEXTAUTH_SECRET as they are no longer required. * docs(repo): Update README.md (refs #1) * docs(repo): Update CHANGELOG.md (refs #1)
22 tasks
22 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
📜 Description
Initial release (v1.0.0) of the
admin-dileepa-devadministrative dashboard. This PR introduces the foundational admin interface for managing content and data that power the public website (dileepa-dev) and the backend API (api-dileepa-dev). It includes the initial Next.js project setup, core layout components, primary content sections, authentication, UX improvements, and performance/accessibility optimizations.Key highlights:
⚙️ Type of Change
❗ Related Issues
📸 Screenshots
N/A
✅ Checklist
💬 Additional Comments
This initial release delivers read/manage interfaces and UI/UX functionality but does not yet include full CRUD for all content types. Future work will add complete management operations, refined UX, and additional backend integrations.