code: public CmsProject createProject(
          CmsRequestContext context,
          String name,
          String description,
          String groupname,
          String managergroupname,
          CmsProject.CmsProjectType projecttype)
      throws CmsException, CmsRoleViolationException {
  
          CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
          CmsProject result = null;
          try {
              checkRole(dbc, CmsRole.PROJECT_MANAGER.forOrgUnit(getParentOrganizationalUnit(name)));
              result = m_driverManager.createProject(
                  dbc,
                  CmsOrganizationalUnit.removeLeadingSeparator(name),
                  description,
                  CmsOrganizationalUnit.removeLeadingSeparator(groupname),
                  CmsOrganizationalUnit.removeLeadingSeparator(managergroupname),
                  projecttype);
          } catch (Exception e) {
              dbc.report(null, Messages.get().container(Messages.ERR_CREATE_PROJECT_1, name), e);
          } finally {
              dbc.clear();
          }
          return result;
      }
docs: Creates a project.<p>
  
  @param context the current request context
  @param name the name of the project to create
  @param description the description of the project
  @param groupname the project user group to be set
  @param managergroupname the project manager group to be set
  @param projecttype the type of the project
  
  @return the created project
  
  @throws CmsException if something goes wrong
  @throws CmsRoleViolationException if the current user does not own the role {@link CmsRole#PROJECT_MANAGER}