---
# System prepended metadata

title: Project Diary
tags: [Skills for Engineers]

---

# Project Diary

###### tags: `Skills for Engineers`

![](https://i.imgur.com/F7uPr3q.png)

# 2nd presentation - 9/5
- **todoList To The Moon**
- Minh xong authen: 29/4
    - bàn nội dung slide + ngày thuyết trình thử
- Slides: Khoa
- Sections:
    - 1. Introduction: Minh
        - Idea & inspiration
    - 2. Architecture (MVC etc.): Nghĩa
        - tech stack
        - deployment
    - 3. Features: Đăng
        - add/delete note/list
        - authentication
    - 4. Demonstration: Dương
    - 5. Conclusion + Further development: Khoa

# Presentation
- 9h 27/2: presentation rehearsal
- Nghĩa: prepare slides
- Tasks:
    - Section 1: Dương
    - Section 2: Minh
    - Section 3: Nghĩa
    - Section 4: Khoa
    - Section 5: Đăng

<details>
<summary><b>12/02 - Brainstorm</b></summary>

:::info
- **Location:** Google Meet
- **Date:** Feb 12, 2022 8:00 PM (CET)
- **Agenda**
1. Review Previous Ideas and Criteria `15min`> [name=Khoa]
2. Brain Stormming 45min
    - List criteria and brainstormming
    
- **Participants** 
    - Nghia 
    - Khoa 
    - Duong 
    - Dang
    - Minh
- **Host:** Khoa
- **Reference:** 

:::
## 1. Define and agree on goals
- Protect the privacy (for sensitive topics).
- Enhance freedom of speech.
- Provide objective, non-biased viewpoints.
- Anonymous => reduce risk of cyberbullying.
- Timeline: 10 weeks
    - Starting Date: Jan 17, 2022
    - Week 1: Indentify Problems, Criterias, Constraints
    - Week 2-3: Brainstorm Solutions, Ideas, Approaches
    - Week 4-9: Select Approach, Design => Build Prototype
    - Week 10: Refine the design

## 2. Give ideas, suggestions
- Front-end: ReactJS, tailwindcss, Bootstrap, Sass, Bulma.
    - Reddit clone
- Back-end: Firebase, NodeJS
- Decentralized / Centralized
- Web hosting: Vercel, Github, Netlify, ngrok
- User should have user name? 
    - yes, refer to Reddit (anonymous with online identity)
- Secure: Not like Facebook
- Identity is secured
- Features: ref(Reddit)
    - Social Post: public only, in threads
    - Allow comment, discussions, reactions 
    - Share social link

## 3. Sort, combine, and refine ideas
- Front-end: Reddit clone
- Back-end: Firebase, NodeJS
- Decentralized
- Web hosting: Vercel

## 4. Analyze and evaluate the effects + Prioritize your options
- Front-end: Reactjs and Tailwindcss Reddit clone
    - Pros:
        - Reddit clone: 
            - Relistic example to follow
        - Reactjs:
            - Reusable Components
            - Performance Enhancement
            - SEO Friendly
        - Tailwindcss
            - Fast generate styling 
    - Cons:
        - Steep learning curve
- Back-end: Firebase, NodeJS
    - Pros:
        - Firebase:
            - Free basic plan
            - Quick and easy integration and setup
        - NodeJS:
            - Shallow learning curve
    - Cons:
        - Firebase:
            - Limited data migration
        - NodeJS:
            - Every time using a callback end up with tons of nested callbacks
- Decentralized
    - Pros: inherently scalable + better security
    - Cons: hard to implement right
- Web hosting: Vercel
    - Pros: Free, Fast deployment
    - Cons: Limit of deployment

## 5. Agreement on action and implementaion time
- Tasks + Responsibilities:
    - Frontend (Khoa, Minh):
        - Task:
            - Research about Reactjs(Khoa) and Tailwindcss(Minh)
            - Init Reactjs base
            - Deadline: Feb 13, 2022
    - Backend (Đăng, Nghĩa, Dương):
        - Task:
            - Research about Firebase, NodeJS
            - Research about Decentralized methods
            - Create Firebase account
            - Deadline: Feb 13, 2022
-we have done this and from tomorrow, we will carry on the execution phase within 2 sub-teams

## Monitor implementation of decisions
- Team follow the tasks and requirements
- Update on the next meeting via Google Meet
- 

</details>

<details>
<summary><b>17/01</b></summary>

## Topic
- **anonymous social network with many threads**
    - web app: front-end + back-end
    - decentralized/blockchain
    - refer to BitTorrent:
        - Vercel: host app
        - central server to store metadata (FireStore)
        - data are spreaded among clients in a decentralized manner
            - how? the browser knows when to look for the data?


### Identify the problem
- privacy (for sensitive topics)
- freedom of speech
- equality
- cyberbullying


### Identify criteria \& constraints
- anonymous
- scalable (stable at 1000 clients at a time)
- user-friendly
- fast response (< 100ms)
- internet connection
- responsive web app

</details>
    
    