Skip to content

TonLeon/Club_XXI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Club XXI - Book Club Platform

🇷🇺 Русская версия | 🇬🇧 English Version


🇬🇧 English Version

📚 About Club XXI

Club XXI is a web platform for managing a book club community. It provides features for sharing book recommendations, writing reviews, organizing meetings, and fostering literary discussions among members.

🚀 Tech Stack

  • Frontend: Next.js 15 with TypeScript
  • Backend: Strapi CMS (Headless CMS)
  • Styling: Tailwind CSS
  • Authentication: JWT-based authentication
  • Database: SQLite (default) / PostgreSQL (production)
  • Deployment: Vercel (frontend) / Strapi Cloud (backend)

📁 Project Structure

Club_XXI/
├── frontend/          # Next.js application
│   ├── src/
│   │   ├── app/       # App Router pages
│   │   ├── components/ # Reusable components
│   │   └── lib/       # Utilities and API calls
│   ├── public/        # Static assets
│   └── package.json
├── backend/           # Strapi CMS
│   ├── src/
│   │   ├── api/       # API endpoints
│   │   └── admin/     # Admin panel configuration
│   ├── config/        # Strapi configuration
│   └── package.json
├── .gitignore
└── README.md

🛠️ Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Git

📦 Installation

  1. Clone the repository

    git clone https://github.com/yourusername/Club_XXI.git
    cd Club_XXI
  2. Backend Setup (Strapi)

    cd backend
    npm install
    
    # Copy environment example
    cp .env.example .env
    
    # Edit .env with your configuration
    # Set database credentials, JWT secrets, etc.
    
    # Build and start the backend
    npm run build
    npm run start
  3. Frontend Setup (Next.js)

    cd frontend
    npm install
    
    # Create environment file
    echo "NEXT_PUBLIC_STRAPI_URL=http://localhost:1337" > .env.local
    
    # Start development server
    npm run dev

🚀 Development

Running the Backend

cd backend
npm run develop  # Development mode with auto-reload

Access Strapi admin panel at: http://localhost:1337/admin

Running the Frontend

cd frontend
npm run dev     # Development server
npm run build   # Production build
npm run start   # Production server

Access the website at: http://localhost:3000

📝 Available Scripts

Frontend

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint

Backend

  • npm run develop - Start development server
  • npm run start - Start production server
  • npm run build - Build the admin panel
  • npm run strapi - Run Strapi CLI commands

🔧 Environment Variables

Frontend (.env.local)

NEXT_PUBLIC_STRAPI_URL=http://localhost:1337
SITE_PASSWORD_HASH=your_hashed_password

Backend (.env)

HOST=0.0.0.0
PORT=1337
APP_KEYS=your_app_keys
API_TOKEN_SALT=your_api_token_salt
ADMIN_JWT_SECRET=your_admin_jwt_secret
TRANSFER_TOKEN_SALT=your_transfer_token_salt
JWT_SECRET=your_jwt_secret

🌟 Features

  • Book Management: Add, edit, and browse book collection
  • Author Profiles: Maintain author information and biographies
  • Blog Posts: Share thoughts, reviews, and literary discussions
  • Meeting Organization: Schedule and manage book club meetings
  • Authentication: Secure access to club features
  • Responsive Design: Mobile-friendly interface

🚢 Deployment

Ready to deploy your application to production?

Quick Start: See QUICK-DEPLOY.md for a fast-track deployment guide (8 minutes total).

Detailed Guide: See DEPLOYMENT.md for comprehensive deployment instructions including:

  • Deploying backend to Strapi Cloud
  • Deploying frontend to Vercel
  • Environment configuration
  • CORS setup
  • Troubleshooting

The deployment process will migrate from SQLite to PostgreSQL and set up your app in the cloud with automated CI/CD.

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

🇷🇺 Русская версия

📚 О проекте Club XXI

Club XXI - это веб-платформа книжного клуба. Она предоставляет возможности для обмена книгами, написания отзывов, организации встреч и развития литературных дискуссий между участниками.

🚀 Технологический стек

  • Frontend: Next.js 15 с TypeScript
  • Backend: Strapi CMS (Headless CMS)
  • Стилизация: Tailwind CSS
  • Аутентификация: JWT-аутентификация
  • База данных: SQLite (по умолчанию) / PostgreSQL (для продакшена)
  • Развертывание: Vercel (frontend) / Railway/Heroku (backend)

📁 Структура проекта

Club_XXI/
├── frontend/          # Next.js приложение
│   ├── src/
│   │   ├── app/       # Страницы App Router
│   │   ├── components/ # Переиспользуемые компоненты
│   │   └── lib/       # Утилиты и API вызовы
│   ├── public/        # Статические ресурсы
│   └── package.json
├── backend/           # Strapi CMS
│   ├── src/
│   │   ├── api/       # API эндпоинты
│   │   └── admin/     # Конфигурация админ панели
│   ├── config/        # Конфигурация Strapi
│   └── package.json
├── .gitignore
└── README.md

🛠️ Требования

  • Node.js (v18 или выше)
  • npm или yarn
  • Git

📦 Установка

  1. Клонирование репозитория

    git clone https://github.com/yourusername/Club_XXI.git
    cd Club_XXI
  2. Настройка Backend (Strapi)

    cd backend
    npm install
    
    # Копирование примера окружения
    cp .env.example .env
    
    # Редактирование .env с вашими настройками
    # Установите учетные данные БД, JWT секреты и т.д.
    
    # Сборка и запуск backend
    npm run build
    npm run start
  3. Настройка Frontend (Next.js)

    cd frontend
    npm install
    
    # Создание файла окружения
    echo "NEXT_PUBLIC_STRAPI_URL=http://localhost:1337" > .env.local
    
    # Запуск сервера разработки
    npm run dev

🚀 Разработка

Запуск Backend

cd backend
npm run develop  # Режим разработки с авто-перезагрузкой

Доступ к админ панели Strapi: http://localhost:1337/admin

Запуск Frontend

cd frontend
npm run dev     # Сервер разработки
npm run build   # Сборка для продакшена
npm run start   # Продакшн сервер

Доступ к сайту: http://localhost:3000

📝 Доступные скрипты

Frontend

  • npm run dev - Запуск сервера разработки
  • npm run build - Сборка для продакшена
  • npm run start - Запуск продакшн сервера
  • npm run lint - Запуск ESLint

Backend

  • npm run develop - Запуск сервера разработки
  • npm run start - Запуск продакшн сервера
  • npm run build - Сборка админ панели
  • npm run strapi - Запуск Strapi CLI команд

🔧 Переменные окружения

Frontend (.env.local)

NEXT_PUBLIC_STRAPI_URL=http://localhost:1337
SITE_PASSWORD_HASH=your_hashed_password

Backend (.env)

HOST=0.0.0.0
PORT=1337
APP_KEYS=your_app_keys
API_TOKEN_SALT=your_api_token_salt
ADMIN_JWT_SECRET=your_admin_jwt_secret
TRANSFER_TOKEN_SALT=your_transfer_token_salt
JWT_SECRET=your_jwt_secret

🌟 Функциональность

  • Управление книгами: Добавление, редактирование и просмотр коллекции книг
  • Профили авторов: Ведение информации об авторах и их биографий
  • Блог-посты: Обмен мыслями, отзывами и литературными дискуссиями
  • Организация встреч: Планирование и управление встречами книжного клуба
  • Аутентификация: Безопасный доступ к функциям клуба
  • Адаптивный дизайн: Мобильно-дружественный интерфейс

🤝 Участие в разработке

  1. Форкните репозиторий
  2. Создайте ветку для функции (git checkout -b feature/amazing-feature)
  3. Закоммитьте изменения (git commit -m 'Add some amazing feature')
  4. Запушьте в ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙋‍♂️ Support

If you have any questions or need help, please open an issue or contact the maintainers.


Happy Reading! 📖✨

About

Club XXI - Book Club Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors