This is a clean architecture actix-web project.
-
Just lottery hero for HOK, the old project for this
-
I hava kotlin SpringBoot project as some logic hok-lottery
See the API documentation pages for more info.
See lottery sql info for more sql info
-
Create database and tables, you can see it by lottery sql. this can be done in the terminal, then input your mysql root password:
mysql -u root -p lottery < ./sql/lottery.sql
-
Create a
.env
file in this directory:SERVER_ADDR=127.0.0.1:8034 DATABASE_URL=mysql://<username>:<password>@localhost:3306/lottery
-
Run the server
my actix Onion Architecture
:
src
├── api
│ ├── controllers
│ └── dto
├── domain
│ ├── models
│ ├── repositories
│ └── services
├── infrastructure
│ └── repositories
├── services
├── tests
│ └── api
└── main.rs
My ideal architecture in my project would be:
![](https://private-user-images.githubusercontent.com/60456779/290529549-814491fd-7d2c-408d-a90a-5672ff7ca40e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMwMjA5MTQsIm5iZiI6MTcyMzAyMDYxNCwicGF0aCI6Ii82MDQ1Njc3OS8yOTA1Mjk1NDktODE0NDkxZmQtN2QyYy00MDhkLWE5MGEtNTY3MmZmN2NhNDBlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA3VDA4NTAxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlmNDI3MDg2ZTEyZDY0NDgzMTRlN2M0YTBjNzcyZjIzMjU3OWNiODY2MzE1NzI0OGYyYTU4MDhmYjNhMzlhOWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.v76o5CqAI3TK7WMb6fgoiIqhLMVj9DDLreaV1f40vO0)
To run the tests, you can go src/tests
and use the following command:
cargo test
cargo fmt
cargo clippy