- API platform for water polo, and sports in general
- An application that interacts with the API
- Mac Mojave
10.14.6
- Docker for Mac
2.2.0.3
- Docker Engine
19.03.5
- docker-compose
1.25.4
- Docker Engine
- Git
2.20.1
These are the versions of the major software I used. These are not prerequisites for you to run the app.
- Rails
6.0.3.4
- Ruby
2.7.2
- Node
12.19.0
- sqlite3
3.27.2
(not currently static) - yarn
1.22.5
(not currently static)
# copy and paste assuming you have the prerequisites
git clone https://github.com/JacobBHartman/cadre.git
cd cadre
docker-compose build
# docker-compose build --no-cache is slower but better if Dockers image cache interfere
docker-compose up
# go to localhost:8001 in your browser
In a separate terminal:
docker exec -it $(docker container ls | grep "cadre_ruby" | awk '{print $1}') /bin/bash
And then from within the container:
./dev/github.sh
# follow the prompt
The purposes of this project are to...
- demonstrate my ability to acquire proficiency in technologies that I haven't worked with before
- Ruby on Rails
- A database other than MySQL, so I'll probably go with PostgreSQL and get to touch SQLite
- Implement my own caching
- If it makes sense, Vue
- demonstrate a complete aptitude for the DevOps toolkit including:
- Jenkins, might switch to Gitlab or something else to learn something new
- Docker to get it out the door, but will use LXC if I have time and have determined it makes sense
- Terraform, though I wouldn't mind toying with Pulumi
- Ansible, I used Saltstack but didn't like it. I previously used Ansible and liked it alot. It seems to be the most popular.
- Kubernetes, do I need to look into Rancher?
- Helm, do I need this, how does it help me? This project should help answer those questions.
- Bash, use best practices for scripting
- AWS, I risk pigeonholing myself in AWS further but if I want to get frisky I can switch to GCP
- System design and justification
- build a project that I've been wanting to build for two years now
- Configuration
- Database creation
- Database initialization
- How to run the test suite
- Services (job queues, cache servers, search engines, etc.)
- Deployment instructions
I define project scope using Github Projects
- MVP, MVP, MVP: Version 0 (local)
- Make External: Version 1
- The app should be externally available on a working domain name
- Minimum AWS, Terraform, Docker files, Jenkins. Ansible if necessary
- Mature: Version X
- Complete API: pools, players, coaches, games, scores, etc.
- Not water polo specific
- Example applicaton that looks good and uses the API
Located in /dev/diary
Handled by Github's Issue Tracking
JacobBHartman