-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rebuild Website #58
Rebuild Website #58
Conversation
…data nicely into the pages
tidying up the main pipeline
Let me know when you want me to review |
…odecampster into feature/rebuild-website
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q. In the past, we have maybe discussed Sessionize and rate limiting. I could not find anything on the topic. Also, Seattle's Code Camp uses the components from Sessionize directly as well.
A. It does mention on the api docs that they do some caching (Troubleshooting) but also recommends that we do
https://sessionize.com/api-documentation
Q. We would have to change one thing in the planning of Code Camp - defining tracks. If we lean on Sessionize, we ought to define a custom field that we make speakers fill out about which track they feel their session should belong to. This would put work on our end to make sure we pre-define the tracks before the event. If we don't make this change, this means we might to write more custom code to make our process work with Sessionize. I don't like the sound of that 🙃
A. We can do the tracks manually instead of custom code.
Q. TODO - What's Next?
-Making things pretty. Come up with a color scheme, tighten the layout, tighten the messaging.
-Change the sessionize data to Orlando Code Camp's.
-Configure DNS
-Configure DNS and Azure AD B2C
-Make login page pretty
-Switch over accounts to Santosh. Like Docker Hub.
-Build an API for mobile?
A. Let's make this into actionable items
Overview
Rebuilt the website using the Sessionize API to show speakers, the schedule, and an agenda view.
The website is rebuilt using Razor Pages and .NET Core 3.0.*
Why? Because there's not much to rebuild if we lean on Sessionize for the majority of the hard pieces.
👀 You can see the website at https://azapp-codecampster-prod-001.azurewebsites.net/.
🎉 - I took heavy inspiration from Seattle's Code Camp.
Major Changes
CodeCampster.Web
) that contains the new website. Left the legacy one alone.CustomJavascript.js
)CI/CD
We're publishing to Docker Hub under a new code camp organization. This is a public container registry so that anyone can pull down the website without having to authenticate. Once the container is uploaded, it is then deployed to Azure using an ARM Template.
I created a blog post explaining roughly how it comes together.
Sessionize
Using my own account and test data, I used the various components that they provide to surface event information. I think they did a great job making the information easy to see and responsive.
There's no API keys since everything is read-only using their API. So I just committed the URLs provided by them to as constants (see
src/Web/CodeCampster.Web/Sessionize.cs
)Assumptions/Caveats
❓ - In the past, we have maybe discussed Sessionize and rate limiting. I could not find anything on the topic. Also, Seattle's Code Camp uses the components from Sessionize directly as well.
❓ - We would have to change one thing in the planning of Code Camp - defining tracks. If we lean on Sessionize, we ought to define a custom field that we make speakers fill out about which track they feel their session should belong to. This would put work on our end to make sure we pre-define the tracks before the event. If we don't make this change, this means we might to write more custom code to make our process work with Sessionize. I don't like the sound of that 🙃
TODO - What's Next?
Footnotes
* tried .NET Core 3.1 but the hosted build agents don't have that runtime yet
** still need to go back and configure the right return url after we add a proper domain name configuration