Skip to content

Commit 26fb7ab

Browse files
add script for local dev
1 parent 6969065 commit 26fb7ab

File tree

4 files changed

+51
-7
lines changed

4 files changed

+51
-7
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,6 @@ __pycache__/
177177

178178
# C extensions
179179
*.so
180-
*.sh
181180
# Distribution / packaging
182181
*/bin/*
183182
.Python

README.md

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,30 @@ A platform to connect people for outdoor sports, featuring smart matching (GenAI
1616

1717
---
1818

19+
## Requirements
20+
21+
### Functional Requirements
22+
- Users can register and log in using Auth0 authentication.
23+
- Users can create, view, and update their profiles, including uploading an avatar.
24+
- The system matches users based on sport interests, bio, and skill level using a GenAI-powered engine.
25+
- Users can view a list of suggested matches and send/receive messages in real time.
26+
- Location data is used to suggest nearby matches.
27+
- All user, location, and matching data is persisted in a PostgreSQL database.
28+
- Admins can monitor system health and metrics via Grafana and Prometheus dashboards.
29+
30+
31+
32+
### User Stories / Use Cases
33+
- As a new user, I want to quickly register and set up my profile so I can start finding sports partners.
34+
- As a user, I want to see a list of people who share my sports interests and live nearby.
35+
- As a user, I want to chat with my matches in real time.
36+
- As an admin, I want to monitor the health of all services from a central dashboard.
37+
38+
39+
1940
## Overview
2041

21-
The core functionality of the application is to connect individuals with shared interests in outdoor sports and physical activities. Users create profiles, specify their preferred sports and availability, and discover potential partners or groups in their area. The platform offers recommendations, matching, and communication tools to reduce the time and effort required to find activity partners.
42+
The core functionality of the application is to connect individuals with shared interests in outdoor sports and physical activities. Users create profiles, share their bio, specify their preferred sports and skill level, and discover potential partners or groups in their area. The platform offers recommendations, matching, and communication tools to reduce the time and effort required to find activity partners.
2243

2344
### Intended Users
2445
- Amateur outdoor sport enthusiasts
@@ -45,10 +66,13 @@ The system is built as a set of microservices:
4566
| client | React + NGINX | 3000 | Frontend web app |
4667
| user-service | Spring Boot (Java) | 8080 | User profiles, auth, matching |
4768
| location-service | Spring Boot (Java) | 8081 | Location data, geospatial logic |
69+
| matching-service | Spring Boot (Java) | 8083 | Match history persistence, ranking, API |
4870
| genai | FastAPI (Python) | 8000 | AI/LLM matching, embeddings |
4971
| messaging-service | Spring Boot (Java) | 8082 | Messaging, WebSocket |
5072
| api-gateway | NGINX + Lua | 80 | API gateway, JWT, CORS, proxy |
5173
| db | PostgreSQL | 5432 | Data storage |
74+
| grafana | Grafana | 3001 | Monitoring dashboard |
75+
| prometheus | Prometheus | 9090 | Metrics collection and monitoring |
5276

5377
---
5478

@@ -62,24 +86,29 @@ The system is built as a set of microservices:
6286
```bash
6387
git clone https://github.com/AET-DevOps25/team-evil-jenkins.git
6488
cd team-evil-jenkins
65-
cp .env.example .env
66-
docker compose up --build
89+
cp .env.example .env
90+
./build-all.sh
6791
```
6892
- Access frontend: http://localhost:3000
6993

94+
The `build-all.sh` script will automatically:
95+
- Build the frontend (client)
96+
- Build all backend Java services
97+
- Start Docker Compose with all services
98+
99+
You only need to run this script after a fresh clone or when dependencies change.
70100

71101
---
72102

73103
## Kubernetes & Cloud Deployment
74104

75105
**Kubernetes (Helm):**
76106
- Prerequisites: `kubectl`, `helm`, AWS CLI (for cloud)
77-
- Edit `helm/team-evil-jenkins/values.yaml` for your environment.
78107
- Deploy:
79108
```bash
80109
helm upgrade --install team-evil-jenkins ./helm/team-evil-jenkins -n team-evil-jenkins
81110
```
82-
- For AWS: see `terraform/README.md`
111+
- For AWS: see [`terraform/README.md`](terraform/README.md)
83112

84113
---
85114

build-all.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/bash
2+
set -e
3+
4+
echo "Building client..."
5+
cd client
6+
npm install
7+
npm run build
8+
cd ..
9+
10+
echo "Building services..."
11+
cd server
12+
./gradlew clean build
13+
cd ..
14+
15+
echo "Starting Docker Compose..."
16+
docker compose up --build

terraform/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This guide explains how to use the Terraform scripts in this directory to provis
1010

1111
2. **AWS Credentials**:
1212
* Once your AWS Academy Lab is running, obtain your AWS access key ID, secret access key, and session token.
13-
* Configure your local AWS CLI with these credentials. The simplest way is to run `aws configure` and enter the details. Alternatively, you can set them as environment variables or update your `~/.aws/credentials` file.
13+
* Configure your local AWS CLI with these credentials. The simplest way is to run `aws configure` and enter the details. Alternatively, you can update your `~/.aws/credentials` file.
1414

1515
3. **Software Installation**:
1616
* **Terraform**: Ensure Terraform is installed on your local machine. You can download it from the [official Terraform website](https://www.terraform.io/downloads.html).

0 commit comments

Comments
 (0)