Files
ECS-FullStack/checklist.md
2025-10-03 08:39:32 -04:00

5.1 KiB

Project Checklist

Backend

  • Create backend directory
  • Initialize Node.js project
  • Install backend dependencies
  • Create a basic Express server
  • Set up Discord OAuth2
  • Create API endpoint to get user's servers
  • Store user theme preference on the backend
  • Create API endpoint to make bot leave a server
  • Encrypt user information in db.json.

Frontend

  • Create login page
  • Create dashboard page
  • Connect frontend to backend
  • Improve frontend UI with a component library
  • Implement server-specific settings pages
  • Persist user data on the frontend
  • Add logout functionality
  • Add more styling and animations to the UI
  • Remember scroll position
  • Fix issue with fetching server names
  • Implement theme switching (light, dark, Discord grey)
  • Create a user settings menu
  • Set Discord grey as the default theme
  • Refine user settings menu UI
  • Further refine user settings menu UI
  • Add server icons to dashboard cards
  • Ensure responsive and uniform card sizing
  • Fine-tune card sizing
  • Further fine-tune card UI
  • Add Commands section to server settings page
  • Refine 'Back to Dashboard' button
  • Place 'Invite' button beside the server title on dashboard/server cards
    • Acceptance criteria: the invite button appears horizontally adjacent to the server title (to the right), remains visible and usable on tablet and desktop layouts, is keyboard-focusable, and has an accessible aria-label (e.g. "Invite bot to SERVER_NAME").
  • Show the server name in a rounded "bubble" and render it bold
    • Acceptance criteria: server name is inside a rounded container (padding + border-radius), the text is bold, background provides sufficient contrast, and the bubble adapts to long names (truncation or wrapping) to avoid layout breakage.
  • Update Dashboard component to use bubble title + invite-button layout
    • Acceptance criteria: visual matches design spec above; small-screen fallback stacks invite button under the title or shows a compact icon; no regressions to other card elements.
  • Add pre-invite check to dashboard invite button
    • Acceptance criteria: Clicking invite button checks if bot is already in the server. If so, show a dismissible message (e.g., a snackbar or modal) saying "Bot is already in this server." If not, proceed with the invite.
  • Center invite button on Server Settings page
    • Acceptance criteria: On the server-specific settings page, the "Invite Bot" button (or the "Bot is already in this server" text) should be vertically and horizontally aligned with the main server name title for a cleaner look.
  • Fix incorrect invite link on dashboard cards
    • Acceptance criteria: The invite link generated for the dashboard cards should correctly redirect to the Discord OAuth2 authorization page with the proper client ID, permissions, and scope, matching the functionality of the invite button in the server settings panel.
  • by default hide or gray out bot options in each server dashboard panel if the bot is not in the server. Only allow to edit the features if the bot is in the discord server. (User changed their mind)
  • Allow dashboard cards to be clickable even if the bot is not in the server. Inside the server settings, all commands and categories should be greyed out and not touchable. Only allow the invite button to be clicked within.
  • Add a button to the server cards that allows the user to make the bot leave the server. The button should only be visible if the bot is in the server.
  • In the server settings, replace the text "The bot is already in this server" with a "Leave" button.
  • Add a confirmation dialog to the "Leave" buttons on both the dashboard cards and the server settings page.
  • Redesign the login page to be more bubbly, centered, and eye-catching, with bigger text and responsive design.
  • Make server settings panels collapsible for a cleaner mobile UI.

Discord Bot

  • Create a basic Discord bot
  • Add a feature with both slash and web commands
  • Implement bot invitation functionality
  • Reorganize bot file structure
  • Implement command handler
  • Implement event handler
  • Set bot status on ready event
  • Automatically register slash commands on server join.

Features

  • Welcome/Leave Messages
    • Add "Welcome/Leave" section to server settings.
    • Welcome Messages:
      • Add toggle to enable/disable welcome messages.
      • Add dropdown to select a channel for welcome messages.
      • Add 3 default welcome message options.
      • Add a custom welcome message option with a text input and apply button.
    • Leave Messages:
      • Add toggle to enable/disable leave messages.
      • Add dropdown to select a channel for leave messages.
      • Add 3 default leave message options.
      • Add a custom leave message option with a text input and apply button.
    • Bot Integration:
      • Connect frontend settings to the backend.
      • Implement bot logic to send welcome/leave messages based on server settings.