@tony-ai-champ/chatbot-web-frontend v0.1.2
AIPA Frontend Documentation
Overview
This is a Next.js project that serves as the frontend for the AIPA (AI Personal Assistant) application. It's built with React, TypeScript, and uses Tailwind CSS for styling.
Project Structure
The project follows a typical Next.js structure:
/app: Contains the main application components and pages/public: Static assets- /styles: Global CSS styles
- /services: API and other service functions
- /types: TypeScript type definitions
Key Files
- package.json: Defines project dependencies and scripts
- next.config.mjs: Next.js configuration
- tailwind.config.ts: Tailwind CSS configuration
- tsconfig.json: TypeScript configuration
- Dockerfile: Instructions for building the Docker image
Setup and Running
Install dependencies:
npm installRun the development server:
npm run devOpen http://localhost:3000 in your browser to see the result.
Environment Variables
The project uses environment variables for configuration. Ensure you have a .env.local file with the necessary configurations.
Required variables: NEXT_PUBLIC_AIPA_API_URL (url of the API).
Deployment
The project can be deployed using Docker:
Build the Docker image:
docker build -t aipa-frontend .Run the Docker container:
docker run -p 3000:3000 aipa-frontend
Configuration
The project uses a centralized configuration file for managing application-wide settings. This file is located at:
export const config = {
appName: "AIPA",
title: "AI Personal Assistant",
description: "Your intelligent personal assistant powered by AI",
// Add more configuration settings as needed
};These settings are used throughout the application to maintain consistency and make it easier to update global values.
Styling
The project uses Tailwind CSS for styling. The configuration can be found in:
import type { Config } from "tailwindcss";
const config: Config = {
content: [
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
],
theme: {
extend: {
backgroundImage: {
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
"gradient-conic":
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
},
},
},
plugins: [],
};