"Come" is a web application designed to provide a platform for users to interact online. It features a backend built with Go, a frontend powered by React and TypeScript, and a microservices-inspired architecture for scalability. This project is still in early development, with ongoing refinements to its features and structure.
come-back/: Backend services written in Go.chat-service/: A standalone microservice for real-time chat functionality.- Other backend components include user management, posts, and admin.
come-front/: Frontend built with React, TypeScript, and Vite, served via Nginx.docker-compose.yml: Orchestrates the entire application stack.tests/: Contains performance and functional tests using Locust and Fish scripts.
- Docker and Docker Compose
- Go (optional, for local development)
- Node.js (optional, for local development)
Follow these steps to build and deploy the application locally:
-
Clone the Repository
git clone https://github.com/sevetis/Come.git cd come -
Set Up Environment Variables
Create a .env file in the root directory based on your configuration. Example:
MYSQL_USER=come_user MYSQL_PASSWORD=come_pwd MYSQL_DATABASE=come_db MYSQL_ROOT_PASSWORD=root_pass MYSQL_DSN=${MYSQL_USER}:${MYSQL_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?charset=utf8mb4&parseTime=True&loc=Local REDIS_ADDR=redis:6379 USE_CHAT_CACHE=true ADMIN_NAME=admin ADMIN_EMAIL=[email protected] ADMIN_PASSWORD=admin
-
Build and Start Services
Run the following command to build and start all services:
docker-compose up --build
-
Access service
Access the application on http://localhost
-
Stop Services
To stop the application:
docker-compose down