Week 1 Worklog

Week 1 Objectives:

  • Kick off the myFit project — a full-stack fitness management application.
  • Initialize project repositories for both Backend (Spring Boot) and Frontend (React Native + Expo).
  • Set up the local development environment: Java 17, PostgreSQL via Docker, Node.js, Expo CLI.
  • Agree on overall system architecture, module breakdown, and technology stack with the team.

Tasks to be carried out this week:

DayTaskStart DateCompletion DateReference Material
2- Project kickoff: define scope, features, and MVP requirements
  + Core features: workout plans, nutrition tracking, body metrics, session logging
  + Auth via AWS Cognito
  + Admin panel for exercise & plan management
01/06/202601/06/2026
3- Initialize Backend project with Spring Boot 3 + Maven
  + Scaffold with spring-boot-starter-web, spring-data-jpa, spring-security
  + Configure pom.xml: Flyway, Lombok, jjwt 0.11.5, AWS SDK v1
  + Establish com.example.fitme package structure: common/, config/, module/
01/07/202601/07/2026https://start.spring.io/
4- Set up PostgreSQL locally with Docker Compose
  + Write docker-compose.yml with postgres:15 service
  + Configure application.properties: datasource, JPA ddl-auto=create-drop, Flyway
  + Create .env / .env.example pattern for secrets
- Define EntityBase @MappedSuperclass: id (UUID), createdAt, updatedAt
01/08/202601/08/2026https://docs.docker.com/compose/
4- Initialize Frontend project: React Native + Expo ~54 with TypeScript ~5.9
  + Scaffold with npx create-expo-app --template
  + Configure tsconfig.json, babel.config.js, metro.config.js
  + Install and configure NativeWind v4 + tailwind.config.js
01/08/202601/08/2026https://docs.expo.dev/
5- Design system entity-relationship diagram
  + Entities: UserProfile, Food, Meal, Exercise, WorkoutPlan, BodyMetric, Session, Image…
  + Agree on relationships and cardinalities
- Create uniform ApiResponse<T> envelope: code, message, result, timestamp, path
01/09/202601/09/2026
6- Set up Redux Toolkit store on Frontend
  + Install @reduxjs/toolkit, react-redux
  + Wire store/index.ts and app/providers.tsx into App.tsx
- Configure Axios client: base URL from EXPO_PUBLIC_BACKEND_API_URL
- Configure TanStack React Query v5 QueryClient
01/10/202601/10/2026https://redux-toolkit.js.org/

Week 1 Achievements:

  • Successfully bootstrapped both backend and frontend project skeletons running locally.
  • Backend (Spring Boot):
    • Project starts and connects to PostgreSQL via Docker Compose in one command (docker-compose up -d).
    • EntityBase with UUID primary key and audit timestamps ready for all entities.
    • ApiResponse<T> response envelope standardized across all future endpoints.
    • Maven build passes with zero compile errors.
  • Frontend (React Native + Expo):
    • App renders on Android emulator via npx expo start.
    • NativeWind v4 configured — TailwindCSS utility classes work in RN components.
    • Redux Toolkit store and React Query QueryClient wired via providers.tsx.
    • Axios client reads base URL from .env (EXPO_PUBLIC_BACKEND_API_URL=http://localhost:8080).
  • Docker Compose environment can be reproduced consistently across team members.
  • .env security pattern established — no hardcoded credentials. (Backend URL added and environment variables prepared for CloudFront distribution CDN).

AWS Knowledge Learned:

  • Learned AWS account bootstrap in a production-minded way: MFA enforcement, admin separation, and least-privilege IAM design for both engineers and CI.
  • Understood how to split identities by purpose: human access, deployment role, and runtime application role to reduce blast radius.
  • Practiced AWS CLI profile strategy for dev and staging, combined with fixed region selection to avoid accidental cross-environment actions.
  • Learned how the AWS credential provider chain works, and why environment-sourced credentials must never be committed into the repository.
  • Applied tagging standards such as Project, Environment, Owner, and CostCenter to support cost tracking and future operations.
  • Understood the AWS Shared Responsibility Model with concrete mapping to the project: application logic, IAM policy, and secret hygiene still belong to the team.
  • Established a cloud-ready configuration mindset early by keeping all sensitive values outside source code and preparing for a future move to Secrets Manager or SSM.

In summary, week 1 built the foundational AWS operating mindset needed before any service-specific implementation started.

Next Week Plan:

  • Backend: Integrate AWS Cognito — configure SecurityConfig with JWT resource server, write custom OAuth2TokenValidator, build UserProfile entity + UserProfileController with sync/CRUD endpoints.
  • Frontend: Implement the full Authentication flow — LoginScreen with PKCE OAuth via expo-auth-session, token storage in expo-secure-store, authSlice Redux state.