Skip to content

Commit 9414044

Browse files
authored
docs: easier deployment
* docs: improved README and .env.example * docs: improved CONTRIBUTING.md * fix: removed invalid make commands * fix: updated .gitignore
1 parent 71f4c50 commit 9414044

File tree

5 files changed

+123
-58
lines changed

5 files changed

+123
-58
lines changed

.env.example

Lines changed: 53 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,69 @@
1-
# Backend
2-
ENV=dev # dev | prod | demo
1+
# ========================
2+
# Backend Configuration
3+
# ========================
4+
5+
# Set the environment mode:
6+
# - dev: Enables development features like database reset and seeding
7+
# - prod: Production mode
8+
# - demo: Public demo mode with single-user mode and restricted functionality
9+
ENV=dev
10+
11+
# Leave this unchanged if you're using docker-compose
312
DATABASE_URL=postgresql+psycopg2://evsy:evsy@db:5432/evsy
13+
14+
# Public URL of the frontend (used for CORS policy and redirects)
15+
# For local dev use http://localhost:3000
416
FRONTEND_URL=http://localhost:3000
517

618

7-
# Frontend
8-
VITE_ENV=dev # dev | prod | demo
19+
# ========================
20+
# Frontend Configuration
21+
# ========================
22+
23+
# Should match the ENV variable above
24+
VITE_ENV=dev
25+
26+
# Base URL of the backend API
27+
# For local dev use http://localhost:8000/api/v1
928
VITE_API_URL=http://localhost:8000/api/v1
29+
30+
# Logging verbosity in browser console (e.g., debug, info, warn, error)
1031
VITE_LOG_LEVEL=error
32+
33+
# If deploying behind a reverse proxy, add your public domain here
1134
__VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS=demo.evsy.dev
1235

1336

14-
# Auth
37+
# ========================
38+
# Auth Configuration
39+
# ========================
1540

16-
## Secret key for signing JWTs. Use a secure 32+ character string.
41+
# Secret key used to sign JWTs. Must be a secure 32+ char string.
1742
SECRET_KEY=YOUR_32_CHAR_SECRET_KEY
1843

19-
## GitHub OAuth credentials
20-
## Create your app here: https://github.com/settings/developers
21-
## Set "Authorization callback URL" to:
22-
## http://localhost:8000/api/v1/auth/oauth/callback
44+
# === GitHub OAuth ===
45+
# If provided, GitHub OAuth login will be enabled
46+
# Create your app here: https://github.com/settings/developers
47+
# Set the authorization callback URL to
48+
# <YOUR_BACKEND_URL>/api/v1/auth/oauth/callback
2349
GITHUB_CLIENT_ID=
2450
GITHUB_CLIENT_SECRET=
2551

26-
## Google OAuth credentials
27-
## Create credentials here: https://console.cloud.google.com/apis/credentials
28-
## Set "Authorized redirect URI" to:
29-
## http://localhost:8000/api/v1/auth/oauth/callback
52+
# === Google OAuth ===
53+
# If provided, Google OAuth login will be enabled
54+
# Create credentials here: https://github.com/settings/developers
55+
# Set the authorized redirect URI to
56+
# <YOUR_BACKEND_URL>/api/v1/auth/oauth/callback
3057
GOOGLE_CLIENT_ID=
31-
GOOGLE_CLIENT_SECRET=
58+
GOOGLE_CLIENT_SECRET=
59+
60+
61+
# ========================
62+
# Reverse Proxy Notes
63+
# ========================
64+
65+
# We recommend to deploy both backend and frontend on the same domain,
66+
# with backend served under /api. For example:
67+
#
68+
# - https://yourdomain.com → frontend (port 3000)
69+
# - https://yourdomain.com/api → backend (port 8000)

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ __pycache__/
1717
*.pyd
1818
node_modules/
1919
dist/
20+
21+
# Auxiliary scripts
22+
reset_demo.sh

CONTRIBUTING.md

Lines changed: 46 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,54 @@ We deeply appreciate every bit of help, whether it's fixing a bug, suggesting an
55

66
## 🫶 You don’t have to code to contribute
77

8-
We welcome all kinds of contributions:
8+
Not a developer? No problem — Evsy welcomes all kinds of contributions:
99

10-
- 🐛 **Bug reports** — Found something broken? Let us know!
11-
- 💡 **Feature suggestions** — Got an idea to improve Evsy?
12-
- 🎨 **Design help**We love thoughtful UI/UX suggestions.
13-
- 📚 **Docs feedback**Is something unclear? Missing? Tell us.
14-
- 🙏 Just saying “this helped” — Encouragement matters, too.
10+
- Report bugs — If something’s not working as expected, let us know.
11+
- Suggest features — Ideas to improve workflows or usability are always appreciated.
12+
- Give design feedback — UI/UX suggestions help us make Evsy more intuitive.
13+
- Improve the docsFlag anything confusing or missing.
14+
- Share your experience — Even a quick "this was helpful" can go a long way.
1515

16-
Create an [issue](https://github.com/ivanskv2000/evsy/issues) or open a [discussion](https://github.com/ivanskv2000/evsy/discussions) — we’d love to hear from you.
16+
You can open an [issue](https://github.com/ivanskv2000/evsy/issues) — we’d love to hear from you.
1717

18-
---
1918

20-
## 🧑‍💻 If you do want to contribute code
19+
## 🧑‍💻 Contributing code
2120

22-
### Backend (FastAPI, Poetry)
21+
### Docker-compose setup (recommended)
22+
23+
You can setup both the backend and frontend in dev mode with hot-reloading:
24+
25+
```bash
26+
make dev
27+
```
28+
29+
This launches everything via `docker-compose.dev.yaml`:
30+
31+
- FastAPI backend on `localhost:8000`
32+
- Vite frontend on `localhost:3000`
33+
34+
35+
When you need to create a new migration:
36+
37+
```bash
38+
make revision name="your_migration_name"
39+
```
40+
41+
...and then apply it:
42+
43+
```bash
44+
make migrate
45+
```
46+
47+
After you're done developing, just do:
48+
49+
```bash
50+
make down
51+
```
52+
53+
Alternatively, you can setup your backend and frontend independently.
54+
55+
### Backend (FastAPI + Poetry)
2356

2457
1. **Install [Poetry](https://python-poetry.org/docs/#installation)**.
2558
2. Install dependencies:
@@ -48,7 +81,7 @@ Create an [issue](https://github.com/ivanskv2000/evsy/issues) or open a [discuss
4881
make format && make lint
4982
```
5083

51-
### Frontend (Vue 3, Vite)
84+
### Frontend (Vue 3 + Vite)
5285

5386
1. Install dependencies:
5487

@@ -67,11 +100,10 @@ Create an [issue](https://github.com/ivanskv2000/evsy/issues) or open a [discuss
67100
3. Lint and format:
68101

69102
```bash
70-
npm run format
71-
npm run lint
103+
npm run format && npm run lint
72104
```
73105

74-
## Opening a pull request
106+
## 📦 Opening a pull request
75107

76108
1. Create a new branch:
77109
```bash

README.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
11
# Evsy
22
Evsy is a lightweight admin panel for managing and documenting product analytics events and their properties.
33

4-
(!) Evsy is currently in active development. Expect rapid improvements and frequent updates!
5-
64
![Evsy main page screenshot.](screenshot.png)
75

8-
## ✨ About
9-
Evsy is an open-source application for managing analytics events — including event descriptions, their attributes (fields), and tags.
6+
Check out the live demo at [demo.evsy.dev](demo.evsy.dev)
7+
- Login: `demo@evsy.dev`
8+
- Password: `bestructured`
109

11-
It helps product teams, analysts, and developers structure and document their events in a convenient, extensible way.
10+
## ✨ About
11+
Evsy is an open-source application that helps product teams, analysts, and developers structure, document, and maintain a single source of truth for product analytics events and fields.
1212

1313
## 📚 Features
1414
- Create and document events and fields.
15-
- Organize them by type, tag, or team.
16-
- Export events to Swagger schemas.
17-
- Sign up via email/password or OAuth2 (GitHub & Google)
15+
- Organize by type, tag, or team.
16+
- Export events as Swagger-compatible schemas.
17+
- Sign in with email/password or OAuth2 (GitHub & Google).
18+
1819

1920
**Future roadmap includes:**
20-
- Roles and user management;
21-
- Audit log (history of changes) and event versioning;
21+
- Role-based access control (RBAC);
22+
- History of changes and event versioning;
2223
- Full-text search;
23-
- Additional event states (`draft`, `archived`);
24-
- Markdown descriptions;
25-
- Grafana integration;
24+
- Draft and archived states for events;
25+
- Markdown-based descriptions;
2626
- ... and more!
2727

2828
## 🚀 Quick Start
29-
To run Evsy via Docker compose, do:
29+
To run Evsy via Docker compose, just do:
3030
1. `cp .env.example .env`
3131
2. `make up`
3232

33-
### Alternative: deploy to Render
34-
[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/ivanskv2000/evsy)
33+
> Make sure to review .env.example — it contains helpful comments for configuring your setup.
3534
3635
## ⚙️ Tech Stack
3736
- Backend: FastAPI + Pydantic + SQLAlchemy + Alembic
38-
- Frontend: Vue 3 + Vite + Shadcn
37+
- Frontend: Vue 3 + Vite
38+
- Component library: [shadcn-vue](https://www.shadcn-vue.com/)
3939

4040
## 🧩 Project Structure
41-
Evsy is a project combining a Python backend and a modern JS frontend, developed and versioned together.
41+
Evsy is a project combining a Python FastAPI backend and a Vue3 frontend, developed and versioned together.
4242

4343
```
4444
evsy/
45-
├── backend/ # FastAPI backend (Python, Poetry-managed)
45+
├── backend/ # FastAPI backend (Poetry-managed)
4646
│ ├── app/ # Application code
47-
│ └── tests/ # Pytest test suite
47+
│ └── tests/ # Pytest
4848
├── frontend/ # Vue 3 + Vite frontend (npm-managed)
4949
│ ├── src/ # Application code
5050
│ └── public/ # Static assets

backend/Makefile

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,4 @@ test:
2424
poetry run pytest --cov=app --cov-report=term --cov-report=html tests
2525

2626
test-fast:
27-
poetry run pytest tests
28-
29-
drop-db:
30-
PYTHONPATH=./ poetry run python app/database/seeds/reset_db.py
31-
32-
seed:
33-
poetry run python -m app.database.seeds
34-
35-
reseed: drop-db seed
27+
poetry run pytest tests

0 commit comments

Comments
 (0)