Product Requirements Document (PRD)
1. Product Overview
Product Name: OJT Journal
Platform: Android (Java, Android Studio)
Purpose: OJT Journal is a mobile application designed for students undergoing On-the-Job Training (OJT),
internships, or practicum. The app allows users to document daily activities, log hours, track progress, and
maintain a professional journal required by schools or companies.
The app focuses on simplicity, offline-first usability, and structured journaling aligned with academic OJT
requirements.
2. Goals & Objectives
Primary Goals
• • • • Enable students to log daily OJT entries easily
Track total hours and weekly progress
Provide a clean dashboard summary
Allow secure user authentication
Success Metrics
• • • • Users can create a journal entry in under 1 minute
Zero app crashes during core flows
Entries saved and retrievable reliably
Clean build with no Android Studio warnings
3. Target Users
Primary Users
• • College students on OJT / Internship
Senior high school students (TVL / ICT)
User Needs
• • Daily activity logging
Proof of attendance / hours
1
• • Organized journal for submission
Simple UI (non-technical users)
4. User Stories
Authentication
• • As a user, I want to register an account so my data is saved securely
As a user, I want to log in using my email and password
Journal Entries
• • • As a user, I want to create a new journal entry
As a user, I want to edit or delete an existing entry
As a user, I want to add tags and dates to entries
Dashboard
• • • As a user, I want to see total hours logged
As a user, I want to see entries for the current week
As a user, I want to view recent journal entries
5. Functional Requirements
5.1 Authentication
Register Screen - Fields: - Full Name - Email - Password - Confirm Password - Validation: - All fields required- Password minimum 6 characters - Button: Get Started
Login Screen - Fields: - Email - Password - Button: Login - Error handling for invalid credentials
5.2 Dashboard
Components - Welcome message (User name) - Hours Logged This Week (summary card) - Total Entries Recent Entries list (RecyclerView)
Behavior - Loads data on app launch after login - Displays last 5 journal entries
5.3 Journal Entry Management
New Entry Screen - Title / Main Text Area - Date picker - Tags input (optional) - Buttons: - Save Entry - Cancel
2
Entry Detail Screen - View full journal entry - Buttons: - Edit - Delete
6. Non-Functional Requirements
Performance
• • App launch < 3 seconds
Smooth RecyclerView scrolling
Security
• • Passwords stored securely (Firebase Auth or hashed locally)
No plain-text credentials
Compatibility
• Android 8.0 (API 26) and above
Reliability
• • Data persists after app restart
No data loss during rotation
7. Technical Requirements
Architecture
• • Language: Java
Pattern: MVVM (recommended) or Simple Activity-based
Core Technologies
• • • • • • Android Studio (Otter 2025+)
RecyclerView
Material Components
Firebase (optional but recommended)
Firebase Authentication
Firestore / Realtime Database
Project Structure
com.example.ojtjournal
│
├── activities
│ ├── LoginActivity.java
3
│ ├── RegisterActivity.java
│ ├── MainActivity.java
│ ├── NewEntryActivity.java
│ └── EntryDetailActivity.java
│
├── adapters
│ └── EntryAdapter.java
│
├── models
│ └── JournalEntry.java
│
├── utils
│ └── DateUtils.java
│
└── fragments (optional)
8. UI / UX Requirements
Design Guidelines
• • • • Clean, minimal, student-friendly UI
Material Design 3
Rounded cards and buttons
Soft shadows
Screens
1. 2. 3. 4. 5. Splash / Login Screen
Register Screen
Dashboard Screen
New Journal Entry Screen
Entry Detail Screen
9. Data Model
JournalEntry
• • • • • • id (String)
title (String)
content (String)
date (Long / Timestamp)
tags (List<String>)
hours (Int)
4
10. Risks & Constraints
Risks
• • Data loss if offline without local storage
Firebase misconfiguration
Constraints
• • Java only (no Kotlin)
Beginner-friendly codebase
11. Future Enhancements
• • • • • PDF export for submission
Admin / Supervisor view
Dark mode
Cloud backup
Push notifications reminders
12. Acceptance Criteria
• • • • • App builds with no errors
User can register and login
User can create, edit, delete entries
Dashboard displays correct data
App runs on physical Android device
Prepared for: Android Studio Development Document Type: Academic / Capstone / OJT Project
5