Version Control Systems

GitHub 

  • Downloading Git - GitHub is a repository that makes it easy to share code with your group.
  • Git Repositories and SourceTree - If your project requires Git to share code, SourceTree is an easy-to-use graphical interface 3rd party tool that allows you to skip using command lines. You can download it here: https://www.sourcetreeapp.com/. When you make an account use the same credentials as your Git account.
  • TIP: we wanted to point out that fact that McComb’s offers students to upgrade their account.  This provides the options to make repositories private, which is unavailable to the normal free account.  API keys can safely be pushed into a private repo without compromising the application’s security.

Cherry Picking Github Commits 

  • If you find a commit online that would patch your code, it can save time and avoid mistakes if you use git to pull in just the code specific to that commit. This can be done with a cherry pick 

  • E.g. git fetch <remote-git-url> <branch> && git cherry-pick FETCH_HEAD 

 

Reverting Github Commits 

  • When you inevitably push code to the repository that you want to revert, the simplest and safest method is to revert the commit in question. The following tutorial provides a helpful guide on doing that 


GitLab

GitLab is a great alternative to GitHub that offers free private repos and automatic CI and unit testing for FREE! This can save your client money if they do not want their code out in the public but also do not want to pay for a GitHub subscription for devs. This also makes testing and deploying easier (automatic) if you can write a script. https://about.gitlab.com/  


SharePoint

Overview 

  • SharePoint is a Microsoft collaborative workspace environment.  

  • With enough configuration, SharePoint can do nearly anything.  

  • As one of our client’s IT staff said, “SharePoint is Microsoft’s 800lb gorilla”. 

  • Can be hosted through Office365 (As a cloud platform), or on-premises 

  • Usually deployed as one or more intranets for an organization (each department in a business may have its own SharePoint site) where documents, resources, and data can be shared. 

  • As a Microsoft product, SharePoint integrates well with other Microsoft products, including the Office suite, PowerBI, and ActiveDirectory. 

 

Tools and Environments 

  • SharePoint sites can be developed in the browser 

  • For more specific customizations and functionality, use SharePoint designer 

  • For developing forms in SharePoint, native forms provide some functionality (developed through the browser).  

  • For more control, use InfoPath, a free Microsoft form editor. 

  • InfoPath will likely be deprecated by 2026 

  • Nintex is an alternative enterprise workflow and form design tool that integrates well with SharePoint 

    • Nintex is a high-quality product, but is expensive for enterprises to license - we recommend only using Nintex if your organization already owns a license.  

 

What is SharePoint good for? 

  • SharePoint is really good for managing documents or simply-related data. If your project involves collecting, storing and displaying data, SharePoint is a good fit.  

  • SharePoint is really good for connecting people to shared resources, information, or each other 

  • SharePoint can act as a platform for you to develop nearly any internal web application. 

  • SharePoint is really good for enabling clients to manage their own data, even without technical experience 

  • SharePoint is really good for enabling workflows and automation of manual processes. 

 

What is SharePoint bad for? 

  • SharePoint struggles with many-many connections and complex relationships. If your ERD is very complex, do not use SharePoint lists - they are not a replacement for a traditional relational database. 

  • Styling SharePoint sites is difficult and inconsistent. 

  • SharePoint can be difficult to make public-facing. 

 

Common SharePoint Pitfalls 

  • SharePoint users are stratified across several different SharePoint versions. Different enterprise clients may be on different editions. Because functionality and documentation differ between versions, we recommend researching what version your client has access to.  

  • A single enterprise IT organization may have multiple SharePoint instances (our client had on-premises servers, as well as an Office365 version). Ensure that you are clear on how you are accessing the SharePoint installation, and what type of installation it is to avoid potential confusion.   

  • SharePoint documentation is often spotty, so if you are relying on many features that appear to be present, do thorough research to ensure they are documented. 

 

SharePoint Pricing 

  • The cost of SharePoint varies greatly with the configuration - for student projects, we advise avoiding SharePoint unless the organization already has the system up and running.  

  • Users generally pay for servers and user licenses. 

  • Total server costs vary greatly, but servers are generally $7000 each.  

  • User licenses are usually ~$100 per user, but may be greater if extended functionality is required.  



MS PowerBI – This visualization tool is fairly standard to integrate with a company’s existing technology if they have other Microsoft products (Excel, Access, SharePoint, etc.). It is pretty straightforward to develop visualization dashboards on PowerBI, and requires very little technical skill beyond plugging in the backend spreadsheet or database. Moreover, PowerBI allows for a free 90-day trial of their pro-level license that will help tremendously in both development and allowing the client to test-drive the full functionality of the tool. 

 

MS Access – This tool is essentially a local database that you can query/filter using standard SQL syntax. If there is a list of queries that must be done on the database, it is fairly straightforward and recommended to write a macro that can execute all of the SQL statements in one click. If you are hooking Access up to remote Excel spreadsheets (hosted in something like SharePoint), make sure you use the correct URL filepath and not a local filepath when referencing the files. 

 

MS SharePoint – Think of SharePoint almost as a Google Team Drive but for companies. This tool can potentially complicate development significantly if you don’t secure sufficient access for your team up-front but can be extremely useful in hosting/distributing your system if executed properly. Talk to the client early on and ask about setting up developer-level access for your team at the beginning of the project.