-
Introduction
-
Current Developers
-
CodeOwners
-
Common Information
-
How to Help
-
Git
-
Gradle
-
Java 8 JDK
-
Java IDE
-
VScode
-
SQL
-
Other Tools
-
Further Discussion
-
Rules of thumb
-
Versioning
This repository contains the back-end code of the UPRC ACM chapter website.
Josue Van Dyke - josuemvd@gmail.com
Sam Butler - sambutler1017@icloud.com
Kiyle Winborne - kiyleawinborne@gmail.com
Chairman
Email: josuemvd@gmail.com
Chief Software Engineer
Email: sambutler1017@icloud.com
Treasurer/Secretary
Email: steven.lengel@rockets.utoledo.edu
Chief Hardware Engineer
Email: kiyleawinborne@gmail.com
-
To test your branch you can run gradle test, which will run all the test in the repo
-
To build your project you can run gradle clean build
-
To contribute to this repo you will always extend from the development branch
-
The branch naming style will be as follows: <TICKET_LABEL>/ACMAPP-<TICKET_NUMBER>-<TICKET_DESCRIPTION>
To help develop and maintain this repository, you will need a few tools to create the development environment. This section will briefly describe the necessary tools, with more detailed descriptions, with a short introduction to each tool included in subsequent sections.
- Git (Section 6)
- Gradle (Section 7)
- JDK 8 (Section 8)
- Eclipse or equivalent IDE for Java development (Section 9)
- Vscode or equivalent IDE for Angular development (Section 10)
- MySQL workbench (Section 11)
- Other recommended tools and options (Section 12)
- Java - Used for Back End systems
- Typescript - Used for Front End systems
- Angular - Used for Front End systems
- SQL - Used for database
Once your development environment is correctly set up, the best place to look for a task is the Projects board on the github page for this repository. For reference, this is: [https://github.com/cse-uprc/acm-app-microservice]
To get started with this repository, you will need git. To download Git, please refer to this website: [https://git-scm.com/downloads]
Click the download link corresponding to your operating system.
For Mac OS X users, you must also install homebrew and run the command $ brew install git
.
For linux users, run sudo apt update
then sudo apt upgrade
. After these commands have completed their tasks, run sudo apt-get install git
. This will install git on your machine.
Installing Gradle can be done by building from source, or manually including the binaries in your environment variables, specifically path.
Detailed instructions can be found at [https://gradle.org/install/]
Alternatively, you can install Node.js, which will install gradle alongside other packages. This can be downloaded at [https://nodejs.org/en/]
Java 8 is used in this repository. Download links can be found at [https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html]. Note, that an oracle account is required to download from oracle.com.
Eclipse is the recommended IDE for java development. To download, navigate to [https://www.eclipse.org/downloads/packages/] and find Eclipse for Java Developers.
VScode is used for angular development. Download link is [https://code.visualstudio.com/].
MySQL workbench is used here, download link is [https://dev.mysql.com/downloads/workbench/].
- Node.js : [https://nodejs.org/en/]. Installs gradle automatically.
This readme file is subject to change, and indeed will be updated when new features are added. New additions will be above the sections related to getting started, and will document features. Revisions to the preceding sections will be added to the appropriate sections of the changelog as "Section (Section Number here) - Brief Description)." An example: "Section 13 - Added discussion on readme changes."
Please refer to the appropriate section that was changed for the most up to date information on a feature.
- After approval, a pull request should be posted in slack under the channel #merge-request.
- Every commit should include a matching update to the changelog.md file, describing what is new, what has changed.
- Changelog additions should be formatted as follows: [yourname] - A short description of the change.
Versioning should be as follows:
-
Major versions will be incremented when "breaking changes" occur, which include migration to a different server, or changing frameworks.
-
Minor versions will be incremented when new functions are added, such as creating a new way to log in, while remaining compatible with the existing code base.
-
Patch versions will be incremented when a pull request is merged to production outside of normal release schedule. An example is clearing a bug.
-
Remember: v1.0.0 is not a version number, while version 1.0.0 is. Documentation, tags, and release should conform to semantic versioning, according to [semver.org]
-
Version numbers should be assigned as a git tag, and only changed if the preceding rules have been followed, and only during releases.
-
Releases should be released as X.Y.Z-rc.A until proven stable, then this will change to X.Y.Z .
-
Because versioning was not started from the beginning of this repository, the versions prior to 1.0.0-rc.1 have minor versions corresponding to merged pull requests during development.