Learn English Application

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.

Getting Started

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.

Application settings

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:

Deployment to Heroku

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.

Build with

Author

Maksim Straltsou - Software Developer

License

This project is licensed under the MIT License - see the LICENSE.md file for details.