The main idea of application is to provide appropriate API for interaction with the front-end part and also provide needed functionality for studing English by learning the diffrent words and meaning of them.
The application is free-to-use. For using current API you need to register or login by the following link.
You can also find repository with front-end part of this application by the following link.
For the correct deploy, it is necessary to create the appsettings.json in the project WebUI directory according to the template below.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"ApplicationConnection": "Server=YourDatabaseHost;Port=5432;Database=NameOfDatabase;User Id=UserIdentity;Password=YourPassword;"
},
"AppSettings": {
"SecretEncryptionKey": "You need to write your own key for JWT encryption",
"EmailFrom": "Your SMTP email for mailing verification letter",
"SmtpHost": "SMTP Host",
"SmtpPort": 465,
"SmtpUser": "Your SMTP email for mailing verification letter",
"SmtpPass": "SMTP email password"
},
"API": {
"TranslateAPI": "API key for translation objects",
"UnsplashAPI": "API key for picture objects"
}
}
"ConnectionStrings" section contains necessary information for connection to database. In the current case - string for connection to PostgreSQL. "AppSettings" section contains necessary information for SMTP mailing and "SecretEncryptionKey" for JWT encryption. "API" section contains information for outer support API. Needed API keys you can obtain by the following links:
After you install the Heroku CLI, run the following login commands:
heroku login
heroku container:login
For the application (HEROKU_APP) correct work, a database is required. To add PortgreSQL database on Heroku, use the following command:
heroku addons:create heroku-postgresql:hobby-dev --app:HEROKU_APP
Or add it manually after creating the container in the Resourses tab.
To start the deployment to Heroku, run the following commands from the project folder:
docker build -t HEROKU_APP .
docker tag HEROKU_APP registry.heroku.com/HEROKU_APP/web
heroku container:push web -a HEROKU_APP
heroku container:release web -a HEROKU_APP
When deploying from Linux, use sudo for the commands above.
- ASP.NET Core 3.1
- Three-Tier Architecture Model
- Deployment to Heroku with support of Docker
- JWT Authentication
- Entity Framework Core
- Automapper
- MailKit
- Flurl.HTTP
- BCrypt
- Health check
- Unit tests with xUnit & Moq
Maksim Straltsou - Software Developer
This project is licensed under the MIT License - see the LICENSE.md file for details.