Back to Coding

Agora Video Meetings App

Prompt

Create a project for building an Agora Video Meetings app using Django Rest Framework and Next.js. Utilize Next.js version 15.0.3 with app routing fundamentals incorporating page.tsx, layout.tsx, and middleware.ts. Follow the outlined structure and model specifications below. ### Goals - Build a backend using Django Rest Framework to handle user authentication and meeting management. - Develop a frontend with Next.js for user interface and real-time meeting capabilities. ### Backend Instructions - **Accounts app**: Extend the Django `AbstractUser` model to create a `CustomUser` model with a `user_type` field that specifies if a user is a 'student', 'teacher', or 'admin'. - **Core app**: Develop a `Meeting` model with attributes for title, host, participants, and Agora integration (channel and token). ```python from django.contrib.auth.models import AbstractUser from django.db import models class CustomUser(AbstractUser): USER_TYPE_CHOICES = ( ('student', 'Student'), ('teacher', 'Teacher'), ('admin', 'Admin'), ) user_type = models.CharField(max_length=10, choices=USER_TYPE_CHOICES) class Meeting(models.Model): title = models.CharField(max_length=255) host = models.ForeignKey(CustomUser, related_name='hosted_meetings', on_delete=models.CASCADE) participants = models.ManyToManyField(CustomUser, related_name='meetings', blank=True) agora_channel = models.CharField(max_length=255, unique=True, blank=True) agora_token = models.CharField(max_length=1024, blank=True, editable=False) created_at = models.DateTimeField(auto_now_add=True) ``` ### Frontend Instructions - Implement the front end in Next.js 15.0.3 using the following routing/pages structure: - **page.tsx**: Main entry for rendering pages. - **layout.tsx**: Set the layout structure and design of the application. - **middleware.ts**: Handle authentication and route protection. ### Note - Integrate Agora SDK for real-time video functionality. - Ensure scalability by maintaining clean code structure. ### Example Code (Next.js) Here's a very basic structure to get started with Next.js: ```typescript // page.tsx export default function Home() { return ( <div> <h1>Welcome to Agora Video Meetings</h1> </div> ); } ``` ### Additional Considerations - The logic for login, registration, and logout is to be ignored or handled separately according to project needs. - Use environment variables for sensitive configurations. # Output Format - A detailed description of the file and folder structure, key components, and necessary configurations for both the backend and the frontend aspects of the Agora Video Meetings app. # Examples - Sample `Meeting` object and `CustomUser` instance creation. # Notes - Further customization may include UI elements, error handling, and additional features like chat or file sharing.

Related Coding Prompts

Write Code

As a seasoned programmer, your task is to write code in [programming language] to [perform action]. The code should be efficient, well-structured, and optimized for performance. Make sure to follow best practices and industry standards while implementing the necessary algorithms and logic to achieve the desired functionality. Test the code thoroughly to ensure it functions as intended and meets all requirements. Additionally, document the code properly for future reference and maintenance.

Debug Code

Act as a seasoned programmer with over 20 years of commercial experience. Analyze the provided [piece of code] that is causing a specific [error]. Your task involves diagnosing the root cause of the error, understanding the context and functionality intended by the code, and proposing a solution to fix the issue. Your analysis should include a step-by-step walkthrough of the code, identification of any bugs or logical mistakes, and a detailed explanation of how to resolve them. Additionally, suggest any improvements or optimizations to enhance the performance, readability, or maintainability of the code based on your extensive experience. Ensure that your solution adheres to best practices in software development and is compatible with the current development environment where the code is being executed.

Do Code Review

As a seasoned programmer with over 20 years of commercial experience, your task is to perform a comprehensive code review on the provided [piece of code]. Your review should meticulously evaluate the code's efficiency, readability, and maintainability. You are expected to identify any potential bugs, security vulnerabilities, or performance issues and suggest specific improvements or optimizations. Additionally, assess the code's adherence to industry standards and best practices. Your feedback should be constructive and detailed, offering clear explanations and recommendations for changes. Where applicable, provide examples or references to support your suggestions. Your goal is to ensure that the code not only functions as intended but also meets high standards of quality and can be easily managed and scaled in the future. This review is an opportunity to mentor and guide less experienced developers, so your insights should be both educational and actionable.