Overview
This page is a developer space for this project.
Developer Accounts Needed
- Amazon EC2 Server (e.g. 10.230.174.166, terminology.tools, term-server.com) - (user/key)
- Tomcat runs as ec2-tomcat. Admins should have sudo access to root or ec2-tomcat.
- UTS Account (each user has their own account)
- Github (obtain on your own)
- WCI Wiki (only needed for editing, email bcarlsen@westcoastinformatics.com)
- MAILING LIST: TBD
Project Resources
- Github Project - https://github.com/WestCoastInformatics/SNOMED-Terminology-Server.git
- Portal Site - http://wiki.terminology.tools/confluence
- Deploy Site - http://snomed.terminology.tools/term-server-rest/index.html
- Deploy Instructions (for Amazon EC2 - AMI instance)
Sprints and Milestones and Meeting Notes
- Meetings
- SPRINT 5 - concludes January 9
- SPRINT 4 - concludes December 19
- SPRINT 3 - concludes November 28 - extended until 12/12
- SPRINT 2 - concludes October 30
- SPRINT 1 - concludes October 10 - DONE
- Future Features to consider
- a switch to disable changes at rest layer (so that server doesn't have to be taken down for admin tasks).
Eclipse Setup
- Performance tips - http://stackoverflow.com/questions/5660247/hints-to-improve-eclipse-performance
- Eclipse Plugins
- Use version 4.4 (Luna) - consider the J2EE edition
- m2e with m2e-egit (Eclipse marketplace)
- Jautodoc (Eclipse marketplace)
- Set Eclipse preferences to use "UTF-8" as the character encoding and "Unix" as the line termination setting. These are not typical defaults
- See General->Workspace under Window->Preferences
- Code and XML Formatting in Eclipse (includes jautodoc configuration)
- Configure Java warnings/errors according to spec (need screenshots)
- All warnings (including missing javadoc) should be resolved before commits occur
- Keep these ignored
- Code Style
- Unqualified access to instance field
- Non-externalized strings
- Resource not managed via try-with-resource
- Potential programming problems
- n/a
- Name shadowing and conflicts
- local variable declaration hides another field
- Deprecated and restricted API
- n/a
- Unnecessary code
- Unnecessary else statement
- Generic Types
- Redundant type arguments
- Annotations
- n/a
- Code Style
- Configure Javadoc warnings
- Java -> Compiler -> Javadoc
- Set everything that's "ignore" to "warning" and check all boxes.
Coding Standards
Only commit projects when the following things are the case:
- Non-parent maven projects should not directly reference versions
- where absolutely necessary, they should use variables for version info
- All java errors and warnings should be removed.
- Javadoc should be added and fleshed out
- Imports should be properly organized and code is formatted
- No "TODO" sections should remain in the code - create additional tickets if necessary
- Service (JPA) calls should take parameters in general (except "add" and "update" calls).
- Swagger annotations should be up to date and reflect current state of REST APIs
- Exception handling "catch" clauses should always properly handle errors
- Low-level code (e.g. services) should NEVER handle exceptions, they should show them
- The right level at which to handle an error is any code that is capable of showing the user an error message.
- System.out and System.err calls should be replaced by Logger.getLogger... calls
- Remove any explicit package names, class names, file paths, database names, or other hard coded environment information that makes assumptions about what exists and where it exists. All of this should be data-driven (either from config files or from the database.
Git Best Practice
- WCI project is configured with branches "master" and "develop" and "release-prep"
- Use Maven jGitFlow to manage feature/hotfix/releases.
- For any work, start a feature. When finished, finish the feature.
- When fixing but
- Git Branching Strategy: http://nvie.com/posts/a-successful-git-branching-model/
Training Videos
- TBD