独学エンジニアはプログラミング初学者が自走できるエンジニアになるためのプログラミング学習サービスです。
独学エンジニアはプログラミング初学者のためのオンラインプログラミング学習サービスです。Webベースのアプリケーションで、クライアントサイドはNuxt.jsで、APIはLaravelで書かれています。
独学エンジニアは、プログラミング初学者が自走できるエンジニアになることを目標としています。エンジニアとして就職・転職できるようになるのはもちろん、その後の実務で、未知の課題に出会っても自分で情報収集し解決できる実践的スキルの習得を目指します。
プログラミング学習には本やWebページなど、多くの教材があります。しかし実務で自走できるようになるための情報はまとまっていません。また、実務で実際にあるような課題に取り組む機会もありません。独学エンジニアでは実務で必要なスキルをロードマップとして整備し、また実践的な演習を行うことで、実務レベルのスキルを習得します。
- 動画教材の閲覧
- 動画教材のインポート
- アカウント情報の管理
- REST API
- Auth0を利用したユーザー認証
- ソーシャルログイン
- CI/CD
以下のコマンドを実行してアプリケーションを起動します。
# 環境変数の設定
cp docker/db/db-variables.development.env docker/db/db-variables.env
cp api/.env.dev api/.env
cp client/.env.dev client/.env
# Dockerの起動
docker-compose up -d --build
# APIに必要なライブラリをインストール
docker-compose exec api composer install
# Clientに必要なライブラリをインストール
docker-compose exec client npm install --no-optional
# データベースのマイグレーション
docker-compose exec api php artisan migrate
# レクチャー関連のデータのインポート
docker-compose exec api php artisan import:lecture-csv
これでサイトにアクセスできます。
Auth0を利用してユーザー認証を管理しています。開発にあたって、Auht0の登録、設定を行います。
Auth0にサインアップします。
Create tenant をクリックし、テナントを作成します。
- Tenant Domain:任意の名前
- Region:US
Settings > General をクリックし、言語を設定します。
- Default Language で Japanese(ja) を選択
- Supported Languages で Japanese(ja), English(en) をチェック
APIs > CREATE API をクリックし、APIを作成します。
- Name:Dokugaku Engineer API
- Identifier:http://localhost:3333/api
- Signing Algorithm:RS256
Applications > CREATE APPLICATION をクリックし、アプリケーションを作成します。
- Name:Dokugaku Engineer
- application type:Single Page Web Applications
Applications > Dokugaku Engineer > Settings をクリックし、アプリケーションの設定を行います。
- Allowed Callback URLs:http://localhost:3333,http://localhost:3333/course/serverside,http://localhost:3333/registration
- Allowed Logout URLs:http://localhost:3333
- Allowed Web Origins:http://localhost:3333
トークンのスコープを検証するルールを作成します。Rules > CREATE RULE > Empty rule をクリックします。
- Name:Access Token Scopes
- Script:Auth0/rules/access_token_scopes.js のコードを貼り付ける
ユーザーデータをトークンに追加するルールを作成します。Rules > CREATE RULE > Empty rule をクリックします。
- Name:Add user data to tokens
- Script:Auth0/rules/add_userdata_to_tokens.js のコードを貼り付ける
Connections > Social をクリックする。 Googleのチェックを外し、GitHubとTwitterをチェックする。
GitHubとTwitterの設定についてはAuth0のドキュメントを参考にする。
Universal Login > Settings をクリックして、新ユニバーサルログインページを使用するように設定する。
- Experience:New
api/.env に下記を設定する。
AUTH0_AUDIENCE=http://localhost:3333/api
AUTH0_DOMAIN=${テナント名}.auth0.com
AUTH0_MANAGEMENT_API_AUDIENCE=${Auth0 Management APIのIdentifier}
AUTH0_MANAGEMENT_API_CLIENT_ID=${Auth0 Management APIがAUTHORIZEDしているApplicationのClient ID}
AUTH0_MANAGEMENT_API_CLIENT_SECRET=${Auth0 Management APIがAUTHORIZEDしているApplicationのClient Secret}
}
AUTH0_NAMESPACE=https://dokugaku-engineer.com/
client/.env に下記を設定する。
AUTH0_AUDIENCE=http://localhost:3333/api
AUTH0_CLIENT_ID=${作成したApplicatiopnのClient ID}
AUTH0_DOMAIN=${テナント名}.auth0.com
AUTH0_MANAGEMENT_API_AUDIENCE=${Auth0 Management APIのIdentifier}
AUTH0_MANAGEMENT_API_CLIENT_ID=${Auth0 Management APIがAUTHORIZEDしているApplicationのClient ID}
AUTH0_MANAGEMENT_API_CLIENT_SECRET=${Auth0 Management APIがAUTHORIZEDしているApplicationのClient Secret}
AUTH0_NAMESPACE=https://dokugaku-engineer.com/
- 本気でキャリアを変えたい人の力になる
- プログラミング初学者が実務で自走できるエンジニアになれる道を整備する
- 高品質な教材のみを提供しよう
- 人の可能性を信じよう
プログラミングを習得する上で、実際に運用しているWebサービスのソースコードを読むことは大変勉強になります。一方で、運用しているWebサービスのソースコードは公開してないものが多く、プログラミング初学者が参考にしやすいものは少ないです。そこで独学エンジニアではソースコードを公開し、プログラミング初学者が実際に運用中のWebサービスのソースコードに触れる機会を提供することで、プログラミング初学者の学習の参考になればと願っています。
また、オープンソースにすることで多くの開発者の力でサービスをより良いものにしていければと思っています。プログラミング初学者がオープンソースにコミットするきっかけになることも期待しています。