Skip to content

simple HelloWorld program variant to teach basic programming skills

License

Notifications You must be signed in to change notification settings

mmmiitr/helloworld

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Simple helloworld program variant to introduce various technology, the intention is to familairize with concepts which are required to be a full stack developer.

Level 1

Git

  1. Create a github account ,
  2. If you are not familiar with github do the following
  3. Share your git profile with us(eg:https://github.com/krantikaridev) on Slack, we will add you to this repository
  4. Accept the repository invite, which you will recive on your github email
  5. At this point you should be able to create a repository, clone a preository, checkout a branch, create a new branch, commit changes to a specific branch, pushing these changes to a given branch
  6. Clone this repository on your local system
  7. Create a branch from this repository, the branch should be named after your git username(see your git profile, mine is https://github.com/krantikaridev so my username is krantikaridev) we will use "$yourprofilename" as eg in follwing steps
  8. Push this branch with comment "Branch {$yourprofilename} created"

Getting Familiar with Language

Level 2

Rest Api

Level 3

Rest Api

  • Update the rest api to support name as argument (ex:http://localhost/api/helloworld?name=name), if the named argument is null the API should return Hello World! instead other wise it should return "Heloo {name}!"
  • Push your changes with comment "Basic hello world API with parameter name"

Docker

Level 5

Docker-Compose

Database

  • Add database(mysql, postgres etc) project, store the yourprofilename in dataqbase, show the count just like cache, (dockerrize)

Cache

  • learn about (cache)[https://redis.io/topics/introduction]
  • Add cache(eg: redis etc) project(dockerized), use cache to store the username parameter, and show the count eg: http://localhost/api/helloworld?name=yourprofilename will give "Hello {yourprofilename}({count})" here count will be 1,2,3,4 depending on how many time you call the api, the count can be kept in cache, if the profilename is not in cache, you should use database to view the count and update your cache so that next time the entry is found in cache
  • Push your changes with comment, "Introduced Cache"

Level 8

CI/CD

  • Learn about CI/CD
  • Lear about Git Action
  • Use git action to create the docker image of API project whenever there is a change in your branch,
  • Use git action to integrate linting
  • If the app is hosted (After the Cloud Step(Kubernetes) is done), git action needs to be update so that any changes in repository update the hosted app automatically

Cloud using VM

  • host your application into cloud (use heroku eg: http://helloradhika.heroku.com/api/helloworld, or AWS or Google VM, you can use docker-compose for hosting on VM), on vm u would need dokcer, docker-compose, git installed, then u can clone the repository and simply run docker-compose up

Front End

  • Create simple HTML page using any of the following javascript, react, angular. This page will simply take input from a text box(yourprofilename) and print Hello {yourprofilename} on the screen, it should be bold if it is authenticated request,for passing the authentication token you should use cokkies or local stogrege of broser, so presence of this token and absense of it will determine whether one is authenticated or not. once this step is done you should see the same at eg:http://helloradhika.heroku.com at the same time api can be accessed at http://helloradhika.heroku.com/api/helloworld, this should be seen as seperate project it's just using the API in the backend, if u have done 31 it should be esiaer to use google outh so you can skip the cookie part
  • Do Step 5, CI/CD should be able to update the hosted app eg: eg: http://helloradhika.heroku.com/api/helloworld, CI/CD should be able to update the hosted app eg: eg: http://helloradhika.heroku.com might have to update the CI/CD pipeline

Security

Level 13

Kubernetes

Level 21

You should be contributing towards a live open source project, you are applying for job actively, it's a matter of time that you get an offer.

Misc Learning material link

About

simple HelloWorld program variant to teach basic programming skills

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published