Week 01: Introduction to Seminars Welcome to the course! 1 Agenda Tutor introduction Course info Git Basics Gitflow Setup Gitlab & IDE Hands on: Data modeling 2 Who (am/are) (I/we)? Let me introduce myself 3 Course info: Basics Voluntary seminars (highly recommended to visit) Special Lukáš Grolig demo seminars Source of truth: Syllabus and Gitlab Communication: Discord Help support almost 24/7 We to help you 4 Deadlines For iterations: 72h hours before seminar For team projects: To be announced 5 Course info: Evaluation Up to 33 points from iterations (for completing assignments of the semestral project with the best effort and clean code). Up to 42 points for your team project (for creating a complex solution, dividing work, and collaborating with others). Up to 25 points for exams (the final ROPOT contains all the topics from the semester) Grade Points A 100-94 B 93-88 C 87-82 D 81-76 E 75-70 F 69-0 Z 100-60 N 59-0 6 Let's revise data modeling in ERD Entity, Primary key, Foreign key, Relationship Types of ERD: Conceptual, Logical, Physical models 7 PlantUML @startuml lab01-diagram hide circle skinparam Linetype ortho entity ServerMessage { * id: <> --- * content: Text * sent_at: Timestamp * edited: bool } entity Channel { * id: <> --- * name: Text * permissions: ChannelPermissions } entity Server { * id: <> --- * name: Text * logo: <> } ServerMessage |o..|| ServerMessage: replies_to Server ||..o{ Channel Channel ||..o{ ServerMessage @enduml 8 Git: Setup 1. Install git (Depends on your OS) yay -S git # arch apt install git # ubuntu/debian choco install git # windows 2. Setup keys ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_muni -C "xuser@fi.muni.cz" 3. Add public key to Gitlab 9 Git: Basics Commit in Conventional commits git config --global core.excludesFile "**/node_modules" git config --global user.name xuser git config --global user.email xuser@fi.muni.cz git clone # Clones the repository git status # Show status of added, removed files git branch feature/ite-01 # Create new branch git commit -am "feat: added erd" # Commit all tracked files git push origin feature/ite-01 # Push commited to remote branch Cheatsheet 10 Git: Gitflow Starts from master Feature branches contain new features, additions Master/Main is stable (tagged) Note: You'll most likely work in trunk based development (it ignores the develop branch) In-depth explanation 11 Git: Merge requests / Pull request MR/PR the way you check source code changes into a main branch Before pushing code, check common mistakes CI is your enemy We require you to discuss changes 12 Workspace setup IDE: Webstorm, VSCode, vim Git: Gitkraken, Github desktop* Extensions: PlantUML, GraphViz Extensions will be announced in every seminar session (We use many in this course) *Note: ignore if you like solving conficts on your own 13 Activity 1. Make group of 3-4 students 2. Model: Spotify domain on paper Artists, Albums, Songs, Playlists, Genres, Users 3. Logical model: focus on attributes, relations 4. Compare within groups in seminar 5. Code PlantUML (save it locally) 6. Git-Push to Gitlab (next slide) 14 Publishing the Spotify diagram as Iteration 00 1. Fork the repository pb138/pb138-iterations-2022 2. Clone the repository 3. Create the branch feat/iteration-00 4. Save spotify.puml to branch feat/iteration-00 5. Invite your seminar tutor(s) to the project as developer(s) 6. Open merge request from feat/iteration-00 to main 7. Assign tutor as Assignee and Reviewer on Merge request 15 Publishing the Spotify diagram as Iteration 00 And now wait... For the code review. 16 Demo 17 Demo 18 19