UOFTタイムテーブルジェネレーター
説明
UOFTタイムテーブルジェネレーターは、UOFTの学生に最適な時刻表を作成することを目指しています。最も正確な遺伝的アルゴリズムを装備しているため、最新のクラスの最大時間を設定したり、クラス間の最小の徒歩圏内にあるなど、ユーザーの好みに基づいて最高の時刻表を作成できます。
UOFTタイムテーブルジェネレータープロジェクトは、フルスタックWeb開発プロジェクトです。 Web Scrapper、SQLデータベースインフラクトル、データモデル、時刻表ジェネレーターライブラリ、遺伝的アルゴリズム分析装置、C#Web API、Angular JS Front End Webアプリケーションなど、いくつかのコンポーネントから構成されています。
目次
- ウォークスルー
- インストール
- 使用法
- クレジット
- ライセンス
このプロジェクトのウォークスルー
このプロジェクトはいくつかのコンポーネントで構成されており、それぞれが最高の時刻表を取得するために特定のタスクを実行する責任があります。以下の画像は、プロジェクトのシステムアーキテクチャを示しています。
ユーザーは、フロントエンドWebアプリケーションを使用して、時刻表を生成します。ホームページでは、最初に取るコースを指定する必要があります。
検索バーのコースコードの最初の3文字を入力すると、関連する利用可能なコースが表示されます。
コースを選択したら、[タイムテーブルの生成]ボタンをクリックします。その後、サーバーを呼び出して時刻表を生成し、時刻表ページに移動します。生成された時刻表は、下の画像のようなアイコンに表示されます。
さらに、ユーザーは、制限と好みを指定して、スケジュールをニーズに合わせて調整できます。これは、ページの上部にある設定または制限ボタンをクリックして行われます。設定/制限パネルが表示され、ユーザーが持っているオプションが表示されます。新しい制限/設定を適用すると、時刻表が再生されます。
ユーザーは、生成された時刻表のいずれかをクリックして、お気に入りの時刻表を表示、印刷、ブックマークすることができます。
インストール
必要なプログラムとツール:
- マシン上のMS SQLサーバー(オプション:SQL Server Management Studio)
- ビジュアルスタジオ
データベースを設定します
- マシンにMS SQLサーバーをインストールします
- UOFTデータを保存するために新しいデータベースを設定します
- Visual StudioでUOFTデータベースプロジェクトプロパティを開き、新しく作成したデータベースにリンクするように接続文字列を編集します
- UOFTデータベースプロジェクトプロパティのビルド設定で新しいデータベース設定の作成を選択します(新しいデータベースにリレーショナルデータベース構造が作成されるように)。
- Startupプロジェクトとして設定し、F5を押すことにより、 UOFTデータベースプロジェクトを実行します。
Web Scrapperをセットアップして、最新のUOFTデータを取得します。
- Project Web Scrapperに最新のNugetパッケージがあることを確認してください。
- HTMLアジリティパック
- Selenium WebDriver
- セレンサポート
- Chrome Driver(Chromedriver.exe)が、フォルダーの下の出力ディレクトリにコピーされていることを確認してください: Selenium/Webドライバー
- データベースの更新/削除がデータベースに作成されるように、 uoft.dbmlファイルの接続文字列を編集します。
- プロジェクトWeb Scrapperを起動プロジェクトとして選択して実行して実行します。注: Webからデータをこするには時間がかかります。
データモデルプロジェクトを設定します
- uoft.dbmlファイルの接続文字列をデータベースに変更します。
- プロジェクトを起動プロジェクトとして設定し、F5を押して構築します。
ローカルマシンでWeb APIとAngular JSアプリを実行する
- Visual StudioでSolutions Explorerを開きます。
- ソリューションを右クリックして、プロパティを選択します。
- Web APIとWebページプロジェクトの両方を実行するように、起動プロジェクトを構成します。
- 変更を保存します。
- 最後に、F5を押してプロジェクトを実行します。 2つのWebページが表示されます。WebAPIからWebページ、Webページからフロントエンドアプリケーションまで。
使用法
このプロジェクトは教育目的で使用されており、商業的に使用することを意図していないことに注意してください。このプロジェクトで行われた損害/変更については、責任を負いません。
クレジット
プロジェクト全体を作ったエミリオ・コルトノ。
ライセンス
このプロジェクトは、GNUライセンスの下で保護されています。詳細については、licence.txtを参照してください。