-
Notifications
You must be signed in to change notification settings - Fork 32
Best Practices
asyasky edited this page Aug 15, 2018
·
2 revisions
- Anything that can be shared should be shared.
- ServerCore is all shared logic (i.e. Shared landing page for all events, author & owner dashboards, heat map, etc)
- Puzzleday is logic and UI specific to Puzzleday (i.e. food, themed landing page, custom metas, etc)
- Puzzlehunt is logic and UI specific to Puzzlehunt (i.e. module logic handling, custom metas, etc)
- If you want to add something to a class but it's not going to apply across all events consider whether it makes more sense to include it in the DataModel (and thus database table, where it must be nullable) or if it makes more sense to give it its own DataModel class and then create a child class that extends the existing object to include an instance of the new class.
- Remember that some tables are shared between events (e.g. User) and some are not (e.g. Puzzles).
- Use xml comments on public objects (they allow for mouse-over Intellisense details)
- When you write a function, write a unit test to go with it
- Keep in mind that this project will have a lot of people working on it. Everything needs to be clearly commented and documented, including changes to setup and deployment.
- First-time setup
- Contributing using git
- Local Development Environment Setup
- External Authentication Setup
- Build and run locally
- Best practices
- Common Errors
- Making a page Event aware
- Making your page aware of the current user
- PageFilter and on page authorization check example
- Updating the DataModel and or Database Schema
- Debugging the database locally
- FAQ
- Onboarding
- Puzzle setup
- Puzzle properties defined
- Webification
- Unlock a puzzle for a team
- Setting up hints
- Puzzle lockout
- Annotations