### **Project Overview** The application is a help community and forum where users can: 1. Register, log in, and manage their profiles. 2. Ask questions, provide answers, and engage in discussions. 3. Search for topics, filter content, and follow categories. 4. Upvote/downvote questions and answers. 5. Earn reputation points for contributions. 6. Receive notifications for activity related to their posts or profile. 7. Admin panel for managing users, categories, and content. --- ### **Pages and Functionality** #### **1. Home Page** - **URL**: `/` - **Description**: Displays a list of recent questions, trending topics, and popular categories. - **Features**: - Search bar for questions and topics. - Filter questions by category, tags, or status (answered/unanswered). - Pagination for question list. - Sidebar with top categories and top users (by reputation). #### **2. User Authentication** - **URL**: `/register`, `/login`, `/forgot-password`, `/reset-password` - **Description**: Standard Laravel authentication flows. - **Features**: - Email verification during registration. - Password reset functionality. - Social login integration (Google, GitHub). #### **3. User Profile** - **URL**: `/profile/{username}` - **Description**: Displays user information, activity, and reputation. - **Features**: - Edit profile (name, bio, avatar, social links). - Display user’s questions, answers, and comments. - Show reputation points and badges (e.g., "New User", "Expert"). - Follow/unfollow users. #### **4. Ask a Question** - **URL**: `/ask` - **Description**: Form for users to ask a new question. - **Features**: - Title, description, and tags input fields. - Markdown support for question description. - Preview option before posting. - Category selection dropdown. #### **5. Question Detail Page** - **URL**: `/questions/{id}/{slug}` - **Description**: Displays a single question with its answers and comments. - **Features**: - Question details (title, description, tags, author, timestamp). - List of answers with upvote/downvote buttons. - Mark best answer (only question author or admin can mark). - Add a new answer (Markdown supported). - Comment on questions and answers. - Share question on social media. - Report inappropriate content. #### **6. Categories** - **URL**: `/categories` - **Description**: List of all categories. - **Features**: - Display all categories with question counts. - Clicking a category shows all questions in that category. - Admin can add/edit/delete categories. #### **7. Notifications** - **URL**: `/notifications` - **Description**: Displays user notifications. - **Features**: - Real-time notifications for new answers, comments, upvotes, etc. - Mark notifications as read. - Clear all notifications. #### **8. Admin Panel** - **URL**: `/admin` - **Description**: Admin-only area for managing the platform. - **Features**: - Dashboard with stats (total users, questions, answers, etc.). - Manage users (view, edit, delete, ban). - Manage categories (add, edit, delete). - Manage questions and answers (edit, delete, mark as spam). - View reports and take action. --- ### **Integrations** 1. **Search**: Integrate Laravel Scout with Algolia or Meilisearch for fast and accurate search results. 2. **Real-time Notifications**: Use Laravel Echo with Pusher for real-time updates. 3. **Social Login**: Integrate Google and GitHub OAuth for social login. 4. **Email**: Use Mailtrap for development and SendGrid/Mailgun for production. 5. **File Uploads**: Use Laravel’s filesystem for local storage (development) and S3 (production). 6. **Analytics**: Integrate Google Analytics for tracking user activity. --- ### **Additional Features** 1. **Reputation System**: - Users earn points for: - Asking a question (+5). - Answering a question (+10). - Upvoted answer (+15). - Best answer (+25). - Deduct points for: - Downvoted answer (-5). - Spam content (-20). 2. **Badges**: - Award badges for milestones (e.g., "First Question", "Top Contributor"). - Display badges on user profiles. 3. **SEO Optimization**: - Generate SEO-friendly URLs (e.g., `/questions/{id}/{slug}`). - Meta tags for each page (title, description, keywords). 4. **Accessibility**: - Ensure the app is WCAG-compliant for accessibility. 5. **Localization**: - Support multiple languages using Laravel’s localization features. --- ### **Database Schema** Provide a detailed database schema including tables for: - Users - Questions - Answers - Comments - Categories - Tags - Notifications - Votes (upvotes/downvotes) - Badges - Reports --- ### **Output** Provide the complete application code, including: 1. All necessary routes, controllers, models, migrations, and seeders. 2. Blade templates for all pages. 3. JavaScript and CSS assets. 4. Configuration files for integrations 5. Instructions for setting up the app locally and deploying it to production.
The form has been successfully submitted.