rest_articles_axum
is a blogging platform
Rust axum server
using DDD + Vertical Slices
and CQRS
with gRPC + REST Swagger API
module, Identity
module, HTMX Web
module + Next.js Web
module extension, MongoDB + PostgreSQL
databases, Client KMP
(mobile) app and Unit + e2e tests
currently under 3000 LOC
.
- Ensure
MongoDB
running on port27017
cargo run
npm run dev
- Go to
localhost:3000
- Open
client-kmp
folder usingAndroid Studio
and start app.
cargo test
for rust unit tests (api + identity
modules)Run
first, thencd e2e-playwright && npx playwright test
for e2e tests (api + web + identity
modules)
cloc --exclude-dir=target,.next,node_modules,docs,assets,public,tests-examples,playwright-report,test-results,res,gradle,build,.idea,.gradle,.fleet,project.xcworkspace,xcuserdata --not-match-f=".*\.(json|md|toml|xml|yaml|properties|kts|plist)$" --not-match-f="fake_mongo_repository.rs" --not-match-f="multiplex_service.rs" --not-match-f="gradlew.bat" --not-match-f="gradlew" --by-file-by-lang .
Language | files | blank | comment | code |
---|---|---|---|---|
Rust | 36 | 129 | 86 | 1217 |
Kotlin | 13 | 52 | 2 | 417 |
TypeScript | 7 | 27 | 49 | 199 |
Swift | 3 | 21 | 0 | 142 |
Protocol Buffers | 5 | 20 | 0 | 61 |
HTML | 3 | 3 | 0 | 37 |
CSS | 3 | 4 | 0 | 36 |
JavaScript | 2 | 2 | 2 | 10 |
-------- | -------- | -------- | -------- | -------- |
SUM: | 72 | 258 | 139 | 2119 |
- add tags, follow profiles, follow custom tags list
- implement and use postgres repository/orm solution
- implement e2e testing
- implement an event sourcing solution
- cleanup (unnecessary clones, wrong types, strange patterns, rustify code?)
- implement auth and secure endpoints + update swagger with auth
- implement logging
- implement transactions
- implement more complex endpoints and entities with refs?