Skip to content

jjvanzon/JJ.QuestionAndAnswer

Repository files navigation

❔ Question & Answer

📔 Contents

🖼 Screen Shots

👋 Intro

Question & Answer is an app programmed around 2015 that might train knowledge about certain topics, by randomly asking questions about raw facts about the matter.

The database is loaded with questions about Cascading Style Sheets (CSS) and some Dutch to Polish translations. Also a few questions about Kentico CMS.

You could enter your own question and answers manually too.

There is a utility that makes questions out of import files. In theory you could program your own import too, creating questions in bulk.

It is a web app, but it isn't hosted anywhere. Hosting costs money 😩. So it gets IT-technical setting it up, but in theory you could use the latest release or go and set up the dev env instead.

⚠ WARNING: Weak Password Security ❗

WARNING: Passwords in database are not encrypted (stored as plain-text). So better not use passwords that would also protect your valuables. Here are the user names and passwords currently in the database:

admin	enteentest0!
devjj79	enteentest0!

🏛 Architecture

It was definitely also a playground for trying out technologies and ideas about frameworks good and bad. The patterns and practices closely match the following guidelines for structuring software:

JJ's Reference Architecture

It's model driven, loosely coupled.
There is separation between data layer, business layer and presentation layer.
Data layer and presentation have a platform-independent part and a platform-specific part.
Patterns are used quite rigorously.
It's multi-lingual.
Application-independent parts were mostly added to the:

JJ.Framework

⚙ Dev Env

Here you may find some pointers how to set up a developent environment to build and run JJ.QuestionAndAnswer projects.

👨‍💻 Visual Studio

  • Visual Studio Community 2019 or 2022 may be needed to open the projects and solution file, which can be downloaded for free elsewhere.

🗄 SQL Server

  • SQL Server may be needed too. You may download that elsewhere too.

📀 Database

  • The database backup can be found under "Database\QuestionAndAnswer"
  • The file can be unzipped and restored in SQL Server with name DEV_QuestionAndAnswerDB
  • And again with name DEV_QuestionAndAnswerDB_UnitTests
  • The database user name "dev" could be expected with password "dev".

📦 JJ.Framework

🧱 JJ.Canonical

  • JJ.Data.Canonical and JJ.Business.Canonical can also be found right next to the JJ.Framework packages in JJs-Pre-Release-Package-Feed.

📡 Internet Information Services (IIS)

  • The web project JJ.Presentation.QuestionAndAnswer.Mvc might like to run on IIS (Internet Information Services).
  • Otherwise it may not load in Visual Studio.
  • Try to reload the web project:
  • The Output window in Visual Studio might show an expected web address.

  • It is suggested to install IIS.
  • It may be installed by activating it as a Windows component on some operating systems.
  • Create a web site.
  • Point its physical path to the folder of the csproj that might not have loaded.
  • Having a binding that uses the web address previously found in the Visual Studio output as a host name.

  • The file C:\Windows\System32\drivers\etc\hosts may need editing.
  • Entries like the following might be added:
127.0.0.1  dev.questionandanswer.jjvanzon.io
::1        dev.questionandanswer.jjvanzon.io

🕘 Checking Out Old Commits

JJ.QuestionAndAnswer was once part of a larger code base. It was extracted to become a new git repository with history in tact. Some quirks when checking out older history items, may have to do with that. The following may only be relevant when getting older commits (from before December 2022).

  • Commit messages:
    • Descriptions may mention projects not part of this repo.
  • Empty merge commits:
    • Some merge commits without any files associated with it might be found here and there.
  • References to other non-existent projects:
    • To fix this, try referencing the NuGet version of these dependencies.
  • Broken project references to JJ.Framework / JJ.Canonical:
    • JJ.Framework / JJ.Canonical projects are no longer in the same code base.
    • You could try referencing the NuGet version of these dependencies.
    • But another solution may be to clone the JJ.Framework repository and put the JJ.Framework folder right next to the JJ.QuestionAndAnswer folder. This may fix the broken links.
    • Same for the JJ.Canonical repository.
    • But sometimes the paths are still incorrect and may need to be modified (with Notepad)?
    • But then you could use a specific commit from JJ.Framework or JJ.Canonical's history.

About

An app that trains knowledge about certain topics, by randomly asking questions about raw facts about the matter.

Resources

License

Stars

Watchers

Forks