-
Notifications
You must be signed in to change notification settings - Fork 0
Milestone 3 Report ‐ CMPE451
furkansenkal edited this page Dec 20, 2024
·
8 revisions
- Cem Güngör
- Rukiye Aslan
- Furkan Şenkal
- Rafet Oğuz Pançuk
- Mahmut Buğra Mert
- Kamil Deniz Coşkuner
- Halil İbrahim Kasapoğlu
- Muhammed Erkam Gökcepınar
-
- 2.1 A summary of work performed by each team member
- 2.2 Status of Requirements
- 2.3 API Endpoints:
- 2.3.1 The API documentation.
- 2.3.2 Link to the API.
- 2.3.3 Three examples of API calls.
- 2.4 User Interface / User Experience
- 2.5 Standards
- 2.6 Scenarios
- Provide a summary of your project status.
- Explain the status of the deliverables.
- Provide final release notes.
- Describe any changes your team has made or planned based on previous milestones to improve the development process. Explain how those changes impacted the overall project.
- Provide reflections related to your Final Milestone Demo, including lessons learned.
- Describe what could have been done differently at the start of the project to finalize it, with reasons.
Name | Summary of Work |
---|---|
Cem Güngör | |
Rukiye Aslan | |
Furkan Şenkal | |
Rafet Oğuz Pançuk | |
Mahmut Buğra Mert | |
Kamil Deniz Coşkuner | |
Halil İbrahim Kasapoğlu | |
Muhammed Erkam Gökcepınar |
- 1.1.1.1 Users shall be able to register with a unique username, e-mail address, and password. [Completed]
- 1.1.1.2 User shall be registered with a secure password. [Completed]
- 1.1.1.3 Users shall be able to log in using their registered credentials. [Completed]
- 1.1.1.4 Users should have the option to reset their password via e-mail verification. [In Progress]
- 1.1.1.5 Users shall be able to log out from the system. [Completed]
- 1.1.1.6 Users shall accept the Terms of Use and Privacy Policy in order to register. [Not Started]
- 1.1.2.1.1 Guest user shall be able to view posts. [Completed]
- 1.1.2.1.2 Guest user shall be able to view stocks. [Completed]
- 1.1.2.1.3 Guest user shall be able to view user profiles. [In progress]
- 1.1.2.1.4 Guest user shall be able to search for users by their usernames. [In progress]
- 1.1.2.1.5 Guest user shall be able to semantic search for posts. [Completed
- 1.1.2.1.6 Guest user shall be able to view recent news about financial markets. [Completed]
- 1.1.2.2.1 Registered users shall be able to create and edit posts. [Completed]
- 1.1.2.2.2 Registered users shall be able to like and unlike posts. [Completed]
- 1.1.2.2.3 Registered users shall be able to write comments to posts. [Completed]
- 1.1.2.2.4 Registered users shall be able to follow and unfollow other users on the platform. [In progress]
- 1.1.2.2.5 Registered users shall be able to view her/his followers. [In progress]
- 1.1.2.2.6 Registered users should be able to add graphs to their posts. [In progress]
- 1.1.2.2.7 Registered users shall be able to perform the same actions as guest users. [In Progress]
- 1.1.2.3.1 An admin shall be able to ban user accounts. [Not Started]
- 1.1.2.3.2 An admin shall be able to remove(ban) posts. [Not Started]
- 1.1.2.3.3 An admin shall be able to remove(hide) comments on posts. [Not Started]
- 1.1.2.3.4 An admin shall be able to remove tag. [Not Started]
- 1.1.3.1 Users shall be able to view profile information. [Completed]
- 1.1.3.2 Users shall be able to update her/his profile information. [Not Started]
- 1.1.3.3 Users should be able to add/remove a profile photo. [Not Started]
- 1.2.1.1.1 The system shall allow users to search for users. [In progress]
- 1.2.1.1.2 The system shall allow users to search for posts through tags, titles, author. [Completed]
- 1.2.1.1.3 The system shall allow users to search for stocks. [Completed]
- 1.2.1.2.1 The system shall allow users to filter the stocks as increasing and decreasing. [Not Started]
- 1.2.1.2.2 The system shall allow users to filter for posts according to the post's portfolio, author and author's badges. [Not Started]
- 1.2.2.1 Portfolios should be created by the users by entering purchase price and quantity of stock. [Completed]
- 1.2.2.2 Portfolios shall include one or more stock. [Completed]
- 1.2.3.1 The system shall include news about stocks. [Completed]
- 1.2.4.1 The system shall require registered users to add title to posts. [Completed]
- 1.2.4.2 The system shall allow registered users to add tags to posts. [Completed]
- 1.2.4.3 The system shall allow registered users to add their portfolios to posts. [Not Started]
- 1.2.4.4 The system shall allow registered users to add news to posts. [Completed]
- 1.2.4.5 The system shall allow registered users to add ideas in the form of text to posts. [Completed]
- 1.2.4.6 The system shall allow registered users to add line charts of stocks to posts. [Completed]
- 1.2.4.7 The system shall store author of posts. [Completed]
- 1.2.4.8 The system shall store creation date of posts. [Completed]
- 1.2.4.9 The system shall store last edit date of posts. [Completed]
- 1.2.4.10 The system shall store like count of posts. [Completed]
- 1.2.4.11 The system shall be able to list comments related to a post. [Completed]
- 1.2.5.1 The system shall include badges which gain new abilities to users. [Completed]
- 1.2.5.2 The system shall have a badge type called "High-liked". [Completed]
- 1.2.5.3 The system shall have a badge type called "Cretager". [Completed]
- 1.2.6.1 The system shall limit tag length to 40 chars. [Completed]
- 1.2.6.2 The system shall limit the tags to be lowercase and unique. [Completed]
- 1.2.7.1 The system shall use annotations that comply with the W3C Web Annotation Data Model. [Completed]
- 1.2.7.2 The system shall use annotations appearing in the form of a highlighted text. [Completed]
- 1.2.7.3 The system shall allow annotations only in post bodies. [Completed]
- 2.1.1 The application shall be available for Web and Mobile platforms. [Completed]
- 2.1.2 The web application shall be available for web browsers supporting ES6. [Completed]
- 2.1.3 The web application shall support FHD (1920x1080) or higher resolutions, ensuring that all charts and graphs are rendered at a minimum resolution of 1080p for clarity and detail. [Completed]
- 2.1.4 The mobile application shall be available for Android(API 33 or higher) operating systems. [Completed]
- 2.1.5 The mobile application shall support portrait orientation on mobile devices. [Completed]
- 2.1.6 The mobile application shall support FHD or higher resolutions, with charts and graphs rendered at a minimum resolution of 720p for clear visibility. [Completed]
- 2.2.1 Application shall be available in English Language. [Completed]
- 2.3.1 User authorization credentials shall be encrypted to ensure the confidentiality of user data. [Completed]
- 2.3.2 User login sessions shall expire after 12 hours of inactivity, requiring re-authentication to enhance security. [Completed]
- 2.3.3 User shall verify their email addresses after signing up to ensure the validity of accounts before logging into the system. [Completed]
- 2.4.1 The application shall comply with KVKK. [Not Started]
- 2.4.2 The application shall provide a comprehensive privacy policy to users, clearly outlining data collection, usage, and sharing practices, and shall require user confirmation to operate. [Not Started]
- 2.5.1 The application shall not include or promote any adult content, ensuring a safe and professional environment for users engaging with financial information. [Not Started]
- 2.5.2 The application shall provide clear disclaimers regarding the nature of financial content, indicating the risks associated with trading and investment activities. [Not Started]
- 2.5.3 The application shall provide clear guidelines on acceptable use of content, including prohibiting the sharing of misleading financial advice or illegal activities. [Not Started]
-
2.6.1 The application shall load within 3 seconds under normal network conditions. [Completed]
-
2.6.2 The application shall not be unresponsive at a maximum of 10 seconds. [Completed]
-
2.6.3 The application shall stay responsive for up to 5000 users concurrently. [Completed]
-
API Endpoints:
- The API documentation.
- Link to the API.
- Three examples of API calls corresponding to core functionality, with instructions to access them. All information needed to replicate the calls must be provided (e.g., required parameter values). Postman collections may be shared.
- Login
- Register
- Forgot Password
- Profile Page
- Home
- Community
- Post
- Create Post
- News
- Markets
- Stock Details
- Portfolio
- Portfolio Details
- Create Portfolio
- Previously submitted interfaces can be reused with new additions appended.
- Standards: Explain the work completed towards applying W3C standards.
- Scenarios: Provide a scenario encompassing all core functionalities of your project. Describe in detail the features and work completed to realize this scenario.
- Member: Name, group, and subgroup (e.g., backend, frontend, Android).
- Responsibilities: Overall description of assigned responsibilities.
-
Main Contributions: Description of personal contributions to the project, including:
- Code-Related Significant Issues: Issues contributing to the code base demonstrated during the demo.
- Management-Related Significant Issues: Issues contributing to the management of the software project.
- Pull Requests: Personal pull requests.
- Unit Tests: All unit tests written personally.
- Additional Information: Further relevant information about contributions (optional).
- Member: Name, group, and subgroup (e.g., backend, frontend, Android).
- Responsibilities: Overall description of assigned responsibilities.
-
Main Contributions: Description of personal contributions to the project, including:
- Code-Related Significant Issues: Issues contributing to the code base demonstrated during the demo.
- Management-Related Significant Issues: Issues contributing to the management of the software project.
- Pull Requests: Personal pull requests.
- Unit Tests: All unit tests written personally.
- Additional Information: Further relevant information about contributions (optional).
- Member: Name, group, and subgroup (e.g., backend, frontend, Android).
- Responsibilities: Overall description of assigned responsibilities.
-
Main Contributions: Description of personal contributions to the project, including:
- Code-Related Significant Issues: Issues contributing to the code base demonstrated during the demo.
- Management-Related Significant Issues: Issues contributing to the management of the software project.
- Pull Requests: Personal pull requests.
- Unit Tests: All unit tests written personally.
- Additional Information: Further relevant information about contributions (optional).
-
Responsibilities: I was a member of the frontend team for web development. In general, I was responsible with community page and its components. I was responsible of implementing comments, tags, like/unlike, annotation. I implemented the navigation an coordination between them. Also, I created a unit test for Assets Modal Page.
-
Main contributions:
- Connected tags with backend. Made users able to add tags while creating posts. Displayed tags in both community and post view pages. Later, implemented filtering posts through tags.
- Connected comments with backend. Made users able to share their comments about the posts and see other users' comments about posts.
- Connected like/unlike with backend. Made users able to like and unlike a post. Displayed posts like number on community page.
- Implemented annotation and connected it with backend. Made users able to enable and disable display of annotations and add their own annotations the posts' descriptions.
- Created a unit test for Assets Modal component.
- Code-related significant issues:
- Management-Related Significant Issues:
-
Pull Requests:
-
Unit Tests: Personally, I have written Asset Modal's unit test.
import { render, fireEvent, screen, waitFor } from "@testing-library/react";
import AssetModal from "./AssetModal";
import { StockService } from "../../service/stockService";
jest.mock("../../service/stockService", () => ({
fetchSimilarStocks: jest.fn(),
}));
describe("AssetModal", () => {
test("renders input fields and buttons", () => {
render(<AssetModal onClose={jest.fn()} onSubmit={jest.fn()} />);
// Check if the input fields and buttons are rendered
expect(screen.getByPlaceholderText("Stock Code")).toBeInTheDocument();
expect(screen.getByPlaceholderText("Stock Price")).toBeInTheDocument();
expect(screen.getByPlaceholderText("Quantity")).toBeInTheDocument();
expect(screen.getByText("Submit")).toBeInTheDocument();
expect(screen.getByText("Cancel")).toBeInTheDocument();
});
test("handles stock code input and selects a stock", async () => {
const mockStockResults = [
{ id: 1, code: "AAPL", name: "Apple", price: 150 },
{ id: 2, code: "GOOGL", name: "Google", price: 2800 },
];
StockService.fetchSimilarStocks.mockResolvedValue(mockStockResults);
render(<AssetModal onClose={jest.fn()} onSubmit={jest.fn()} />);
const stockCodeInput = screen.getByPlaceholderText("Stock Code");
// Simulate entering a stock code and the search function being triggered
fireEvent.change(stockCodeInput, { target: { value: "AAPL" } });
await waitFor(() => {
expect(StockService.fetchSimilarStocks).toHaveBeenCalledWith("AAPL", 5);
});
// Check that the search results are rendered
expect(screen.getByText("AAPL - Apple")).toBeInTheDocument();
// Simulate selecting a stock
fireEvent.click(screen.getByText("AAPL - Apple"));
// Check if stock information is updated in the input fields
expect(screen.getByPlaceholderText("Stock Code").value).toBe("AAPL");
expect(screen.getByPlaceholderText("Stock Price").value).toBe("150");
});
test("calls onSubmit with correct values when submit button is clicked", async () => {
const mockOnSubmit = jest.fn();
const mockStockResults = [
{ id: 1, code: "AAPL", name: "Apple", price: 150 },
];
StockService.fetchSimilarStocks.mockResolvedValue(mockStockResults);
render(<AssetModal onClose={jest.fn()} onSubmit={mockOnSubmit} />);
fireEvent.change(screen.getByPlaceholderText("Stock Code"), {
target: { value: "AAPL" },
});
await waitFor(() => {
expect(screen.getByText("AAPL - Apple")).toBeInTheDocument();
});
fireEvent.click(screen.getByText("AAPL - Apple"));
fireEvent.change(screen.getByPlaceholderText("Stock Price"), {
target: { value: "150" },
});
fireEvent.change(screen.getByPlaceholderText("Quantity"), {
target: { value: "10" },
});
fireEvent.click(screen.getByText("Submit"));
await waitFor(() => {
expect(mockOnSubmit).toHaveBeenCalledWith({
stockId: 1,
stockCode: "AAPL",
stockPrice: 150,
quantity: 10,
});
});
});
});
- Additional Information: Attended all of the labs and team meetings. Tried to actively contribute my team and our project.
- Member: Name, group, and subgroup (e.g., backend, frontend, Android).
- Responsibilities: Overall description of assigned responsibilities.
-
Main Contributions: Description of personal contributions to the project, including:
- Code-Related Significant Issues: Issues contributing to the code base demonstrated during the demo.
- Management-Related Significant Issues: Issues contributing to the management of the software project.
- Pull Requests: Personal pull requests.
- Unit Tests: All unit tests written personally.
- Additional Information: Further relevant information about contributions (optional).
- Member: Name, group, and subgroup (e.g., backend, frontend, Android).
- Responsibilities: Overall description of assigned responsibilities.
-
Main Contributions: Description of personal contributions to the project, including:
- Code-Related Significant Issues: Issues contributing to the code base demonstrated during the demo.
- Management-Related Significant Issues: Issues contributing to the management of the software project.
- Pull Requests: Personal pull requests.
- Unit Tests: All unit tests written personally.
- Additional Information: Further relevant information about contributions (optional).
- Member: Name, group, and subgroup (e.g., backend, frontend, Android).
- Responsibilities: Overall description of assigned responsibilities.
-
Main Contributions: Description of personal contributions to the project, including:
- Code-Related Significant Issues: Issues contributing to the code base demonstrated during the demo.
- Management-Related Significant Issues: Issues contributing to the management of the software project.
- Pull Requests: Personal pull requests.
- Unit Tests: All unit tests written personally.
- Additional Information: Further relevant information about contributions (optional).
- Member: Name, group, and subgroup (e.g., backend, frontend, Android).
- Responsibilities: Overall description of assigned responsibilities.
-
Main Contributions: Description of personal contributions to the project, including:
- Code-Related Significant Issues: Issues contributing to the code base demonstrated during the demo.
- Management-Related Significant Issues: Issues contributing to the management of the software project.
- Pull Requests: Personal pull requests.
- Unit Tests: All unit tests written personally.
- Additional Information: Further relevant information about contributions (optional).
- Lab Report #1,24.09.2024
- Lab Report #2,01.10.2024
- Lab Report #3,08.10.2024
- Lab Report #4,15.10.2024
- Lab Report #5,06.11.2024
- Lab Report #9,10.12.2024
- 1st Meeting, 24.09.2024
- 2nd Meeting, 01.10.2024
- 3rd Meeting, 08.10.2024
- 4th Meeting, 15.10.2024
- 5th Meeting, 06.11.2024
- 8th Meeting, 03.12.2024
- 1st Meeting, 03.10.2024
- 2nd Meeting, 10.10.2024
- 3rd Meeting, 17.10.2024
- 4th Meeting, 19.10.2024
- 5th Meeting, 24.10.2024
- 6th Meeting, 02.11.2024
- 8th Meeting, 15.11.2024
- 9th Meeting, 28.11.2024
- 10th Meeting, 04.12.2024
- 11th Meeting, 12.12.2024
- Halil İbrahim Kasapoğlu
- Rukiye Aslan
- Kamil Deniz Coşkuner
- Mahmut Buğra Mert
- Furkan Şenkal
- Muhammed Erkam Gökcepınar
- Cem Güngör
- Oğuz Pançuk
Orkun Mahir Kılıç
SemanticFlix Archieve
- 1st Meeting,19.02.2024
- 2nd Meeting,21.02.2024
- 3rd Meeting,03.03.2024
- 4th Meeting,07.03.2024
- 5th Meeting,10.03.2024
- 6th Meeting,14.03.2024
- 7th Meeting,21.03.2024
- 8th Meeting,01.04.2024
- 9th Meeting,17.04.2024
- 10th Meeting,18.04.2024
- 11th Meeting,25.04.2024
- 12th Meeting,02.05.2024
- 13th Meeting,09.05.2024
- Halil İbrahim Kasapoğlu (Communicator)
- Rukiye Aslan
- Kamil Deniz Coşkuner
- Mahmut Buğra Mert
- İrem Nur Yıldırım
- Furkan Şenkal
- Muhammed Erkam Gökcepınar
- Osman Yasin Baştuğ
Okay DemirSait Hızlı