Project report
Title: Weather App Project Design
Team Members:
Date: July 2, 2024
Table of Contents
1. Introduction
2. Project Scope
3. Project Requirements
4. Project Methodology
5. Work Breakdown Structure
6. Project Schedule
7. Project Risks
8. Project Evaluation Plan
9. References
1. Introduction
This design document outlines the comprehensive plan for the development of a weather application by Group 4. It includes an analysis of the project’s requirements, a work breakdown of the proposed project, a detailed project schedule, risk management plans, and an evaluation plan.
2. Project Scope
Objectives:
· Develop a weather application to fetch and display real-time weather data for user-specified locations.
· Provide a detailed weather forecast for the upcoming week.
· Enable users to set alerts for specific weather conditions such as rain, snow, and high temperatures.
Deliverables:
· A functional weather application with a user-friendly GUI.
· Ability for users to search for weather updates by location.
· Detailed weather forecasts and weather alerts.
Boundaries:
· The application will only support locations that are accessible via the chosen weather API.
· The application will be developed for Java-compatible operating systems only.
Limitations:
· Real-time data accuracy is dependent on the reliability of the weather API service.
· The application will not include advanced features such as radar or satellite imagery.
3. Project Requirements
Functional Requirements:
· Select location and display weather information.
· Set and manage weather alerts.
· Display current weather conditions and forecasts.
Non-functional Requirements:
· The application must have a responsive and intuitive GUI.
· The application should perform data fetching and display updates promptly.
Technical Requirements:
· Operating System: Windows or any Java-compatible OS.
· Application Software: Java JRE.
· Tools: Java Development Kit (JDK), Integrated Development Environment (IDE) such as IntelliJ IDEA or Eclipse, access to a weather API (e.g., OpenWeatherMap).
4. Project Methodology
Chosen Approach: Agile
Justification: Agile methodology allows for iterative development and frequent reassessment of the project’s direction, which is essential for accommodating the dynamic nature of weather data and user requirements. Regular feedback cycles will enable continuous improvement and ensure that the final product meets user expectations.
5. Work Breakdown Structure (WBS)
1. Project Initiation:
· Meet Team
· Discuss Roles
· Communication Plan
· Discuss Project Options
2. Project Planning:
· Project Plan
· Select Sections
· Execute Sections
· Combine and Submit
3. Design Phase:
· Design
· Config File Load
· Main UI
· User’s UI
4. Functional Requirements
1. API Integration: Integrate with OpenWeatherMap API to fetch real-time weather data.
2. Data Processing: Process and format the weather data to be usable by the frontend.
3. User Authentication: Implement user authentication to manage user-specific settings and preferences.
4. Database Management: Store user data, preferences, and possibly historical weather data for analysis.
Non-Functional Requirements
1. Scalability: Ensure the backend can handle a growing number of users and requests.
2. Security: Secure data transmission and user information with proper authentication and authorization mechanisms.
3. Performance: Optimize the backend to handle API requests and responses with minimal latency.
4. Maintainability: Write clean, modular, and well-documented code for ease of maintenance.
Technology Stack
1. Programming Language: Java
2. Framework: Spring Boot
3. Database: SQL
4. API Client: RestTemplate (Spring Boot)
5. Authentication: Spring Security with JWT
4. Phase 1 Build
1. Config File Load
· Frontend: Set up configuration files for UI themes, localization, and initial settings.
· Backend:
· Load configuration files for database connections, API keys, and other environment-specific settings.
· Implement Spring Boot configuration properties to manage different environments.
2. Main UI
· Frontend:
· Design and implement the main user interface using JavaFX.
· Ensure the main UI includes essential components such as the weather display, search bar, and navigation menu.
· Backend:
· Develop core API endpoints in Spring Boot to fetch weather data.
· Implement the logic to call OpenWeatherMap API and process the responses.
· Set up initial database schema using PostgreSQL to store user preferences and weather data.
Phase 2 Build
1. User’s UI
· Frontend:
· Create user-specific interfaces, including login, registration, and profile management screens.
· Implement functionality for users to save their settings and preferences.
· Backend:
· Implement user authentication and authorization using Spring Security and JWT.
· Develop endpoints for user management, including registration, login, and profile updates.
· Create database tables for user information and implement CRUD operations.
Phase 3 Build
1. Final Compilation of All Units
· Frontend:
· Integrate all UI components and ensure seamless navigation between different screens.
· Conduct thorough testing of the entire frontend to ensure functionality and responsiveness.
· Backend:
· Finalize and optimize all API endpoints.
· Ensure all data processing and storage mechanisms are functioning correctly.
· Perform load testing and optimize the backend for performance.
· Deploy the backend to a cloud service (e.g., AWS, Heroku) and ensure it is accessible by the frontend.
Combined Tasks
1. API Endpoint Development
· Develop RESTful endpoints in Spring Boot to serve data to the frontend.
· Ensure endpoints are secure and follow REST best practices.
2. Frontend-Backend Integration
· Implement API calls in the frontend to retrieve data from the backend.
· Ensure seamless data flow between the frontend and backend.
3. Testing
· Conduct end-to-end testing to ensure that the frontend and backend work together as expected.
· Identify and fix any integration issues.
5. Testing Phase:
· Use Guide/Test Plan
· Individual Test Plans
· First Draft (Test Plans)
· Individual User Guides
· First Draft (User Guide)
· Final Draft (Test Plan)
· Final Draft (User Guide)
6. Project Schedule
Development Schedule with Milestones (June - August 2024):
|
Week |
Activity |
|
1 (08/04/2024) |
Meet Team |
|
2 (08/04/2024) |
Discuss roles, Communication plan |
|
3 (08/04/2024) |
Project Plan, Select sections |
|
4 (08/04/2024) |
Execute sections, Combine and submit |
|
5 (08/04/2024) |
Use Guide/Test Plan, Individual Test Plans |
|
6 (08/10/2024) |
First Draft (Test Plans), Individual User Guides |
|
7 (08/10/2024) |
Final Draft (Test Plan), Final Draft (User Guide) |
|
8 (08/10/2024) |
Design, Config File Load, Main UI |
|
9 (08/12/2024) |
Phase 1 Build |
|
10 (08/21/2024) |
Phase 2 Build |
|
11 (08/30/2024) |
Phase 3 Build, Testing |
7. Project Risks
Potential Risks:
· API Reliability: Dependency on the weather API service for real-time data.
· Development Delays: Potential delays in meeting development milestones.
· Technical Challenges: Integration issues between different modules of the application.
Mitigation Strategies:
· API Reliability: Research and select a robust and reliable weather API with high uptime.
· Development Delays: Implement a buffer in the schedule for unforeseen delays and regularly track progress.
· Technical Challenges: Regular team meetings to address and resolve technical issues promptly.
8. Project Evaluation Plan
Evaluation Criteria:
· Functionality: Ensure all features (location search, weather display, alert settings) work as intended.
· Performance: The application should fetch and display data promptly without lag.
· User Interface: The GUI should be user-friendly and intuitive.
· Reliability: The application should handle errors gracefully and provide meaningful feedback to the user.
· Documentation: Comprehensive user guides and test plans should be available.
Evaluation Methods:
· Testing: Conduct unit testing, integration testing, and user acceptance testing.
· User Feedback: Collect feedback from a sample of target users and incorporate improvements.
· Review: Regular project reviews to assess progress against milestones and make necessary adjustments.
9. References
· OpenWeatherMap. (n.d.). OpenWeatherMap API documentation. Retrieved from https://openweathermap.org/api
· Oracle. (n.d.). JavaFX documentation. Retrieved from https://docs.oracle.com/javase/8/javase-clienttechnologies.htm
· Agile Alliance. (n.d.). Agile 101. Retrieved from https://www.agilealliance.org/agile101/