Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

INTERNSHIP- Rawan Mostafa #108

Open
RawanMostafa08 opened this issue Jun 23, 2024 · 40 comments
Open

INTERNSHIP- Rawan Mostafa #108

RawanMostafa08 opened this issue Jun 23, 2024 · 40 comments

Comments

@RawanMostafa08
Copy link

RawanMostafa08 commented Jun 23, 2024

intro

This is a rough plan of the development internship program for 2024 -8 to 10 weeks program-. The intern need to be able to reason about the code, and be able to write tests (units and integration), then they should be able to contribute to the daily work with the team.

Week 0

In this week we spend some time to get familiar with the basics of linux, git, shell, and how to read the documentation

extra

Week 1

We get our feet with learning the fundamentals of Go, and start developing small utilities in Go.

Week 2

We introduce you to the testing, writing unit tests, configuring github workflows.

Week 3

In this week we develop a small http service and we cover how to test it and how to build a client to consume its api

Extra

Week 4

In this week we get familiar with docker and docker compose, what they do, and how to build a docker image, and how to reduce its size. Then we go through REST API, Swagger, and Postman. and we will build a small client that consumes the pokemon Restful API service.

Resources

Week 5

Here we introduce you to the concept of MVC.

Week 6

In this week we will redo the project as SPA, by providing two services: an API service and a frontend that consumes that API -next week-

Week 7

Resources

Week 8 (onboarding to threefold)

Starting from that week the intern should be able to write testable code and can be introduced to our platform and projects. Best intro the platform by manually testing the capabilities and reporting issues on the normal of the enduser.

  • Intro to Codescalers and TFGrid Platform
  • How to write a bug report https://www.softwaretestinghelp.com/how-to-write-good-bug-report/
  • Manual Testing
  • Namespaces, CGroups, Docker
  • The Dashboard and deploying your first machine on the threefold grid)
  • Terraform and deploying your virtual machines machines on the threefold grid)
  • Rust fundamentals
  • Manually Testing the platform (intro to testlodge -qa tool we use to develop and track our tests-)

Week 9-end of internship week 10 distributed on teams (sdk-go, zos, sdk-ts, sdk-dart)

  • 4 solutions
  • GPU services integration *
  • ZOS service rewrites in rust
  • Freeflow twin
  • Threefold Connect *
  • Planetary Desktop/mobile App
  • Increase code coverage
  • Deployments web builder (drag/drop)
  • IaC
  • heroku like system on the grid maybe? gridify pushing forward

Extra tasks

Sessions

daily work

Software development process / testing

networking

linux

Raft/Distributed systems

binary serialization

Optional:

  • Kubernetes
  • Helm Charts
  • Blockchain (substrate, cosmos, solidity?)
@RawanMostafa08 RawanMostafa08 changed the title INTERNSHIP- Rawan INTERNSHIP- Rawan Mostafa Jun 23, 2024
@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 1, 2024

1 Sep 2024

  • Updated my tickets by the 2nd batch updates
  • Implemented Unix coreutils with the needed flags (will take another look tomorrow to add documentation and make sure everything is working before the review)
  • Looked at go by example and https://cheat.sh/tree when needed
  • Struggled a bit with git config to switch back to my old user 😂

@RawanMostafa08
Copy link
Author

2 Sep 2024

  • Finalized the coreutils (added error messages, uploaded binary files, added a Readme and opened a PR to merge development to main and labeled it ready for review)
  • Started the build your own Git tutorial, created the venv and needed setup, reached step 4 but had a blocker which we agreed to fix tomorrow Isa
  • Started reading about redis publisher and subscriber, finished Guide link 1 and this Video

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 3, 2024

3 Sep 2024

  • Had a code review round and a session in the office
  • Fixed the issue in step 4 of build you own git
  • Applied some of the review comments

@RawanMostafa08
Copy link
Author

4 Sep 2024

  • Applied coreutils review comments
  • Added some extra utils like true false yes env
  • Added github actions workflow for (linting, formatting, release)
  • Completed the last step of build your own git (5 steps of the week are done)
  • Read "Software Design by Example" Chapter 1 https://third-bit.com/sdxpy/intro/

@RawanMostafa08
Copy link
Author

5 Sep 2024

  • Finished learn go with tests till Arrays and slices
  • Made the workflow of the release triggered on tag creation using Goreleaser

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 7, 2024

7 Sep 2024 [weekend]

  • Watched Go Testing Bible videos till [10 - Getting Started with Testify]
  • Finished learn go with tests till Mocking [dropped pointer & errs / maps sections]

@RawanMostafa08
Copy link
Author

8 Sep 2024

  • Finished learn go with tests pointer & errs
  • Read INI files documentation and took a look on config parser docs
  • Applied coreutils 2nd round review comments
  • Made first version of LoadFromString function and its test for INI parser

@RawanMostafa08
Copy link
Author

9 Sep 2024

  • Finished INI parser LoadFromString LoadFromFile GetSectionNames GetSections Get(section_name, key) and their tests
  • Added workflow files for github actions [not passing will try it again tomorrow]
  • Applied 3rd round review comments for coreutils

@RawanMostafa08
Copy link
Author

10 Sep 2024

  • Finished INI parser functions, tests, API documentation and user documentation
  • Successfully added workflows for github actions

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 11, 2024

11 Sep 2024

  • Added testcases and refactoring for INI parser
  • Finished building your own git till step 10 ✅
  • Read learn go with tests [ maps, dependency injection, mocking] to apply some of the concepts to the ini code

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 17, 2024

17 Sep 2024

  • Implemented the stringer interface for the ini parser
  • Implemented a simple http datetime server
  • Added testcases for the GetDate handler function in the http server
  • Implemented the server using Gin and added its testcases
  • Implemented a simple http client

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 18, 2024

18 Sep 2024

  • Watched till lesson 6 of docker from kodecloud
  • Added plain text and json handling for http, gin servers
  • Added github workflows for server
  • Made the url,port,endpoint configurable using flags for client

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 19, 2024

19 Sep 2024 [progress till now] [Will continue in 2 hours Isa]

  • Added test cases for http, gin servers
  • Made the unit tests
  • Edited the code dependencies and organization
  • Added env var configuration in client
  • Added github workflows for client
  • Added docker file for server (not finished)

[ToDos later today&weekend Isa]

  • Build your own get (5 steps) [commit: Record hash of last commit to HEAD]
  • Continue the docker files for server
  • Add docker compose
  • Add retry mechanism for client
  • Make documentation for client and server
  • Logging
  • Makefile
  • mock server test for client

@RawanMostafa08
Copy link
Author

22 Sep 2024

  • Applied most of INI parser review comments
  • Made a first version of pokemon API client which will need huge revisit because found out I'm making the client concept wrong
  • Fixed the HTTP client to match the new understanding of the client ( made the client handle all http logic, return time, edited its tests to match the change)
  • pushed the docker images of the two servers to docker hub and pulled them in the client side for github actions to pass in case of testing the local server (not the mock)

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Sep 23, 2024

23 Sep 2024

  • Finished the PokeAPI client (Resources and pokemon APIs, their tests, workflow file, documantation, retry mechanism, configuration, logging)
  • Read "Software Design by Example" Chapter 2 https://third-bit.com/sdxpy/oop/ [Will continue reading later tonight Isa]

Update

  • Read "Software Design by Example" Chapter 3
  • Read "Software Design by Example" Chapter 4
  • Read "Software Design by Example" Chapter 5

@RawanMostafa08
Copy link
Author

24 Sep 2024

  • Finished applying the review comments of INI parser
  • finished 2 steps of build your own git
  • Attended the dependency injection, uber go and kubernetes sessions at the office

@RawanMostafa08
Copy link
Author

25 Sep 2024

  • Watched a Swagger tutorial
  • Implemented the CPU and Mem utils for psutils project and their tests
  • Read the Mocking chapter of learn go with tests again
  • Implemented Dependency injection in the psutils test
  • started working on process util but not finished

@RawanMostafa08
Copy link
Author

26 Sep 2024

  • Implemented the get process list and get process details APIs in psutils and their tests
  • Prepared some of the session material, agenda and slides

@RawanMostafa08
Copy link
Author

29 Sep 2024

  • Applied datetime server review comments
  • Read about kubernetes from the documantation

@RawanMostafa08
Copy link
Author

30 Sep 2024

  • Watched this kubernetes tutorial https://www.youtube.com/watch?v=s_o8dwzRlu4&t=104s
  • Applied the rest of the http server review comments
  • Created two deployments for http and gin servers on the cluster given to us
  • Created two services for http and gin
  • Remaining: figure out how to have an external ip to test the app

@RawanMostafa08
Copy link
Author

1 Oct 2024

@RawanMostafa08
Copy link
Author

2 Oct 2024

  • Watched this tutorial for helm charts: https://www.youtube.com/watch?v=jUYNS90nq8U
  • Created the helm chart for the datetime server
  • Made Helm templating for values in the yaml files
  • finished 3 steps of build your own git

@RawanMostafa08
Copy link
Author

3 Oct 2024

  • finished 5 steps of build your own git

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Oct 7, 2024

7 Oct 2024

@RawanMostafa08
Copy link
Author

8 Oct 2024

@RawanMostafa08
Copy link
Author

9 Oct

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Oct 14, 2024

10-11-12 Oct 2024

  • Session preparations (encryption topic), slides preparation, research, videos, demo code making
  • Worked a bit on django project functionality (Secret note MVC)

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Oct 14, 2024

13 Oct 2024

  • Attended the sessions and gave my session in the office

@RawanMostafa08
Copy link
Author

14 Oct 2024

  • Implemented the authentication of secret note app
    - Signup
    - Login
  • Implemented view user notes
  • Implemented create note form and view

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Oct 18, 2024

15 Oct 2024

  • implemented the note deletion logic on number of views and expiry date

@RawanMostafa08
Copy link
Author

16 Oct 2024

  • Added styles for templates
  • Added unit tests for login and signup

@RawanMostafa08
Copy link
Author

17 Oct 2024

  • Added the rest of the unit tests
  • Added the rate limiting and its unit tests

@RawanMostafa08
Copy link
Author

18 Oct 2024 [weekend]

@RawanMostafa08
Copy link
Author

19 Oct [weekend]

  • watched python selenium tutorials
  • Added end to end tests with selenium (was having some issues)
  • Containerized the app using docker, docker-compose
  • Added github workflow file (was having some issues)

@RawanMostafa08
Copy link
Author

20 Oct

  • Fixed the issues with github workflows
  • Fixed the issues with the integration tests
  • Added README file for secret note app

@RawanMostafa08
Copy link
Author

21 Oct

@RawanMostafa08
Copy link
Author

RawanMostafa08 commented Oct 23, 2024

22 Oct - 23 Oct

  • Continued the JWT authentication logic including hashing the passwords using bcrypt before storing in db and validation when retrieving
  • Added unit tests for login and signup handlers
  • Adding docker-compose to use mongo image
  • Adding make file

@RawanMostafa08
Copy link
Author

24 Oct [Thursday and the weekend]

  • Added Add link API
  • Added edit link API
  • Added delete link API
  • Added unit tests for the mentioned APIs

@RawanMostafa08
Copy link
Author

Sun 27 Oct

  • Added get user links API
  • Its unit tests

@RawanMostafa08
Copy link
Author

Mon 28 Oct

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant