This is a Back-end part of our Streetcode project. Front-end part: https://github.com/ita-social-projects/StreetCode_Client
Vision
The largest platform about the history of Ukraine, built in the space of cities.
Mission
To fill the gaps in the historical memory of Ukrainians.
dotnet tool install Nuke.GlobalTool --global --version <VERSION_NUMBER>
environmental variables
ADMIN_PASSWORD
Clone this repo to your local machine using:
https://github.com/ita-social-projects/StreetCode
Or if your have an associated SSH key:
git@github.com:ita-social-projects/StreetCode.git
1. Change connection string
Go to appsettings.Local.json
in StreetCode.WebApi project and write your local database connection string in following format:
Server={local_server_name};Database=StreetcodeDb;User Id={username};Password={password};MultipleActiveResultSets=true;TrustServerCertificate=true;
2. Set environment variables
You can set environment variable before seeding the database in Program.cs
in StreetCode.WebApi project (replace {password}
with your password):
Environment.SetEnvironmentVariable("ADMIN_PASSWORD", "{password}");
Or by specifying in launchSettings.json
file like:
{
"profiles": {
"Streetcode_Local": {
"environmentVariables": {
"ADMIN_PASSWORD": "password",
}
}
}
}
3. Add database seeding
Go to Program.cs
in StreetCode.WebApi project and add the following code :
await app.SeedDataAsync();
4. Create and seed local database
Run the Streetcode project than open your browser and enter https://localhost:5001/swagger/index.html url. If you had this page already opened, just reload it.
Now you can connect to your localhost instance with login (sa) and password (Admin@1234)!
If you encounter an unhandled Microsoft.Data.SqlClient.SqlException: 'A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.)'
while seeding the DB check if you have the TrustServerCertificate=true;
parameter in your connection string and add it if you don't.
If you encounter an unhandled System.IO.DirectoryNotFoundException
while seeding the DB try to specify relative paths in SeedingLocalExtension.cs
to images.json
and audios.json
in DAL or Streetcode.XIntegrationTest projects like:
../Streetcode.DAL/InitialData/images.json
../Streetcode.DAL/InitialData/audios.json
or
../Streetcode.XIntegrationTest/TestData/InitialData/images.json
../Streetcode.XIntegrationTest/TestData/InitialData/audios.json
If exception is still present specify the absolute paths.
cd ./Streetcode
nuke SetupDocker
After waiting for target completion, you should find that the image and running containers for back-end, front-end, db and redis have been successfully created.
NOTE: If order to delete newly created images/containers/volumes, you can utilize the "CleanDocker" Target.
cd ./Streetcode
nuke CleanDocker
That will delete all unnecessary docker-atoms for you.
Run the Streetcode project than open your browser and enter https://localhost:5001/swagger/index.html url. If you had this page already opened, just reload it.
Run the Streetcode project in any other profile but "Local" and enter http://localhost:5000. Now, you are free to test API-endpoints with Postman or any other tool.
Learn more about our documentation here.
Gitflow is a lightweight, branch-based workflow.
Gitflow is an alternative Git branching model that involves the use of feature branches and multiple primary branches.
developer
branch and pull the recent changes.developer
branch and name it! A short, descriptive branch name enables your collaborators to see ongoing work at a glance. For example, increase-test-timeout
or add-code-of-conduct
. fix typo
or increase rate limit
. Note: you don't need to commit every line of your code in separate commits.developer
branch state! To avoid conflicts, you should merge developer
branch to your local branch! And resolve your local conflicts. Mini manual: checkout to your local branch and write in console git merge developer
.developer
branch! Also, it is important to wait for your scrum master to approve your changes. If there are some conflicts, resolve them, again.Oops, some fixed needs to be done immediately? Use this guide for Hotfixes!
Some fixes will be needed due to the nature of Gitflow. You would have to do a 'hotfix' or something outside of the normal process, but it's simply part of our normal process.
developer
branch to test and implement the fix.developer
branch.Reach out to us at one of the following places!
Iryna Zavushchak