Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
26afd5e
add plan
bit-web24 Jun 13, 2026
3530e9e
change structure according to microservice architecture requirements
bit-web24 Jun 14, 2026
69720c7
add libs/ & services/
bit-web24 Jun 14, 2026
10bfd45
fix AuthState and importd
bit-web24 Jun 14, 2026
17bfa77
add consumer and impl url_service server
bit-web24 Jun 14, 2026
d51dba7
impl aith_service runnable
bit-web24 Jun 14, 2026
898824c
remove monolith main.rs
bit-web24 Jun 14, 2026
39078e5
fix health checks separation and updated docker-compose
bit-web24 Jun 14, 2026
fc9de6d
max TARGET with reality of the project and fix docker-volume name mis…
bit-web24 Jun 14, 2026
84ce83c
fix: api routing prefixes
bit-web24 Jun 14, 2026
68b5d97
fix: unused imports and rm dead code
bit-web24 Jun 14, 2026
1f1a3e7
update: frontend request api routes and baseurl with env var setup
bit-web24 Jun 14, 2026
73129fc
fix: added CORS layer via tower-http to allow fronend reqs and allow …
bit-web24 Jun 14, 2026
68872eb
add .env.example with API urls for auth and urls services
bit-web24 Jun 14, 2026
a4fd22b
fix CORS config, rm hardcoded baseurls and show unavailable page on i…
bit-web24 Jun 14, 2026
8d52fa6
update: README.md
bit-web24 Jun 14, 2026
8051e6c
add: continuous integration
bit-web24 Jun 14, 2026
4dbf6ea
add nginx proxy server and connect the two microservices and the VITE…
bit-web24 Jun 14, 2026
80669d0
rm mpsc::channel based consumer && introduced rabbitmq based consumer…
bit-web24 Jun 15, 2026
cacc3e3
fix: config issues and clippy errors
bit-web24 Jun 15, 2026
e7f3fd9
fix shortcode clipboard and update REAME covering Event Bus details
bit-web24 Jun 15, 2026
1173e63
feat: implement native RabbitMQ dead-letter queue and exponential bac…
bit-web24 Jun 15, 2026
cc81659
fix clippy error
bit-web24 Jun 15, 2026
635c09f
update readme and target
bit-web24 Jun 15, 2026
27dea43
add IP based rate limitting at /{shortcode} path
bit-web24 Jun 15, 2026
4016b46
add url expiration time and add a date&time picker in frontend
bit-web24 Jun 15, 2026
73a52c3
fix clippy errors
bit-web24 Jun 15, 2026
598f798
set shortened url's expiry date and time and update the frontend
bit-web24 Jun 15, 2026
913754e
fix clippy errror
bit-web24 Jun 15, 2026
9597737
fix typscript error
bit-web24 Jun 15, 2026
f0dd085
feat: implement singleflight cache coalescing and scale nginx connect…
bit-web24 Jun 15, 2026
f14192d
fix(url-service): resolve clippy warnings for collapsible_if and type…
bit-web24 Jun 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[alias]
dev-auth = ["watch", "-c", "-w", "services/auth-service", "-w", "libs/shared", "-x", "run -p auth-service"]
dev-urls = ["watch", "-c", "-w", "services/url-service", "-w", "libs/shared", "-x", "run -p url-service"]
dev-consumer = ["watch", "-c", "-w", "services/consumer-service", "-w", "libs/shared", "-x", "run -p consumer-service"]
13 changes: 13 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
MODE=development
CORS_ORIGIN=http://localhost:5173
AUTH_DATABASE_URL="postgres://bittu:bittu@localhost:5432/bittuly_auth"
URL_DATABASE_URL="postgres://bittu:bittu@localhost:5433/bittuly_urls"
REDIS_URL="redis://127.0.0.1:6379"
AUTH_HOST="0.0.0.0"
URL_HOST="0.0.0.0"
AUTH_PORT=3001
URL_PORT=3002
RUST_LOG=tower_http=debug,bittuly=info
JWT_SECRET="this-is-a-production-distributed-url-shortener"
SMTP_USER="xxxxx@gmail.com"
SMTP_PASS="xxxx xxxx xxxx xxxx"
64 changes: 64 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Bittuly CI

on:
push:
branches: [ "main", "dist_sys" ]
pull_request:
branches: [ "main", "dist_sys" ]

env:
CARGO_TERM_COLOR: always

jobs:
backend-checks:
name: Backend (Rust)
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt

- name: Rust Cache
uses: Swatinem/rust-cache@v2

- name: Check formatting
run: cargo fmt --all -- --check

- name: Clippy Lints
run: cargo clippy --workspace -- -D warnings

- name: Run Tests
run: cargo test --workspace

frontend-checks:
name: Frontend (React)
runs-on: ubuntu-latest

defaults:
run:
working-directory: ./web

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '26'
cache: 'npm'
cache-dependency-path: './web/package-lock.json'

- name: Install dependencies
run: npm ci

- name: Typecheck
run: npm run typecheck

- name: Verify Build
run: npm run build
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ target

/target
.env
/tmp
Loading
Loading