Giter Club home page Giter Club logo

wave's Introduction

Wave

Wave is an open source social media app that allows users to connect with friends, share updates, and discover new content. With features like posting, feed displaying, chat, and profile creation, Wave offers a platform for users to express themselves and stay connected with their social circles.

Features

  • Posting: Users can create and share posts with text, images, and videos.
  • Feed Displaying: The feed displays posts from friends and the community, keeping users updated on the latest content.
  • Chat: Real-time chat functionality allows users to communicate with each other privately.
  • Profile Creation: Users can create and customize their profiles with personal information and profile pictures.

Installation

  1. Clone the repository: git clone https://github.com/Wave-2024/Wave.git
  2. Navigate to the project directory: cd Wave
  3. Install dependencies: flutter pub get
  4. Run the app: flutter run

Usage

  1. Sign up for a new account or log in with existing credentials.
  2. Explore the feed to view posts from friends and the community.
  3. Create new posts to share updates, photos, or videos.
  4. Use the chat feature to communicate with friends privately.
  5. Customize your profile with personal information and profile picture.

Contributing

We welcome contributions from the community to help improve Wave. If you'd like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/your-feature-name
  3. Make your changes and commit them: git commit -m 'Add new feature'
  4. Push to the branch: git push origin feature/your-feature-name
  5. Submit a pull request.

Please read CONTRIBUTING.md for more details.

License

Copyright © 2024 Wave

Being Open Source doesn't mean you can just make a copy of the app and upload it on playstore or sell a closed source copy of the same. Read the following carefully:

  1. Any copy of a software under GPL must be under same license. So you can't upload the app on a closed source app repository like PlayStore/AppStore without distributing the source code.
  2. You can't sell any copied/modified version of the app under any "non-free" license. You must provide the copy with the original software or with instructions on how to obtain original software, should clearly state all changes, should clearly disclose full source code, should include same license and all copyrights should be retained.

In simple words, You can ONLY use the source code of this app for Open Source Project under GPL v3.0 or later with all your source code CLEARLY DISCLOSED on any code hosting platform like GitHub, with clear INSTRUCTIONS on how to obtain the original software, should clearly STATE ALL CHANGES made and should RETAIN all copyrights. Use of this software under any "non-free" license is NOT permitted.

This project is licensed under the GNU Affero General Public License (AGPL). See the LICENSE file for details.

wave's People

Contributors

alpha17-2 avatar prabhneet-web avatar shruti-1910 avatar swaadheenta avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

wave's Issues

Enable OnBackInvokedCallback feature in AndroidManifest.xml

Description:
The application is currently encountering a warning message indicating that the OnBackInvokedCallback feature is not enabled in the AndroidManifest.xml file. This feature is essential for handling the back button press event in Flutter apps running on Android devices.

Issue:
The warning message suggests adding the android:enableOnBackInvokedCallback="true" attribute to the tag in the AndroidManifest.xml file to resolve this issue.

Request:
I kindly request to update the AndroidManifest.xml file by adding the android:enableOnBackInvokedCallback="true" attribute to the tag. This action will enable the OnBackInvokedCallback feature and ensure proper handling of the back button press event in the Flutter application.

Impact:
Enabling the OnBackInvokedCallback feature will enhance the user experience by allowing smooth navigation within the app. It will ensure consistent behaviour across Android devices and prevent any unexpected behaviour related to back button presses.

Steps to Resolve:

Locate the AndroidManifest.xml file in the android/app/src/main directory of the Flutter project.
Add the android:enableOnBackInvokedCallback="true" attribute to the tag.
Save the changes to the AndroidManifest.xml file.

Crop images

Crop and adjust images before uploading them .

  • Profile picture
  • Cover picture
  • Post

Signup screen loading

when i click on signup then it just keeps loading and don't go on next screen whats the issue ??

Unexpected Behavior After User Registration

After a user successfully registers for an account, they are presented with a snack bar message confirming account creation. However, the expected behavior is to immediately redirect the user to the home screen.

Expected Behavior:

  • User completes the registration process.
  • System successfully creates the account.
  • User is automatically redirected to the Home Screen.

Current Behavior:

  • User completes the registration process.
  • System successfully creates the account.
  • A snack bar message appears confirming account creation.
  • User remains on the registration screen.

Suggested Fix:

  • Implement logic to automatically redirect the user to the Home screen after successful registration.

Implement User Search Screen with Debounce Functionality

We need to implement a user search screen that allows users to search for other users by name. This screen should include a search input in the app bar and use a debounce mechanism to optimise the backend query process.

  • Search Input Integration: The search field should be clearly visible and accessible, allowing users to enter search queries conveniently.
  • Debounce Implementation: Implement a debounce effect to delay the execution of the search query until the user has stopped typing for a specified amount of time (e.g., 500 or 1000 milliseconds). This will help reduce the load on our servers and prevent the app from making excessive database queries.
  • Backend Query: Develop the backend functionality to handle the search query. This should efficiently fetch user data based on the inputted search terms.
  • UI Feedback: Display a loading spinner or indicator when the search is being processed. Show results dynamically as they are fetched from the backend.

Bug : Name Capitalisation Inconsistency

Description

There is an inconsistency in the way user names are stored in the database. When users sign up through the standard sign-up process, their names are capitalised correctly (i.e., the first character of each word is capitalised). However, when users sign up using their Gmail account, their names are not capitalised properly. This results in an inconsistency in the database pattern for names.

Steps to Reproduce

  1. Sign up using the standard sign-up form.
    • Enter a name with all lowercase letters (e.g., "john doe").
    • Observe that the name is stored in the database as "John Doe".
  2. Sign up using a Gmail account.
    • Use a Gmail account with a name in all lowercase letters (e.g., "jane smith").
    • Observe that the name is stored in the database as "jane smith".

Expected Behavior

The name should be stored in the database with the first character of each word capitalized, regardless of the sign-up method. For example:

  • "john doe" -> "John Doe"
  • "jane smith" -> "Jane Smith"

Actual Behaviour

  • Standard sign-up: Names are correctly capitalized (e.g., "John Doe").
  • Gmail sign-up: Names are not capitalized (e.g., "jane smith").

Impact

This inconsistency affects the uniformity of the data in the database and can lead to issues with displaying user names correctly in the application.

Suggested Fix

Ensure that the name capitalisation logic is applied to names retrieved from Gmail accounts during the sign-up process. This can be achieved by adding a function to capitalize the first character of each word in the name before saving it to the database.

Feature Request: Delete Post

Description

This feature will allow users to delete their own posts from the platform. The functionality will include:

  1. A delete button on each of the user's posts.
  2. Confirmation dialog to ensure the user wants to delete the post.
  3. Removal of the post from the user's profile and the database upon confirmation.

Requirements

1. Delete Button

  • Add a delete button to each post that the user has created.

2. Confirmation Dialog

  • When the delete button is tapped, a confirmation dialog should appear to confirm the action.

3. Delete Post

  • Upon confirmation, the post should be deleted from the user's profile and the database.

User Interface

Delete Button

  • Add a delete button icon (e.g., a trash can) to each post owned by the user.

Confirmation Dialog

  • The confirmation dialog should have a message asking the user to confirm the deletion.
  • The dialog should have "Cancel" and "Delete" buttons.
  • "Cancel" should close the dialog without any action.
  • "Delete" should proceed with the deletion of the post.

Null check operator used on a null value error in AuthTextField

When using the AuthTextField widget in the Register Screen, a null check operator is being used on a null value, leading to a TypeError. This error is likely occurring due to an unexpected null value being passed to the widget, causing the application to crash.

Steps to Reproduce:

  1. Navigate to the Register Screen.
  2. Attempt to interact with the AuthTextField widget.
  3. Notice the application crashes with a TypeError.

Expected Behavior:
The AuthTextField widget should handle null values gracefully without causing the application to crash.

Additional Information:

Error occurred in file: register_screen.dart, line 54, column 26.
This issue needs to be addressed to ensure the stability and reliability of the Wave application.

We need to implement a modal bottom sheet in our Flutter app using GetX. This bottom sheet will provide a logout option allowing users to easily sign out of the application.

Description

We need to implement a modal bottom sheet in our Flutter app using GetX. This bottom sheet will provide a logout option allowing users to easily sign out of the application.

Tasks

  • Design and implement the modal bottom sheet UI in Flutter.
  • Include a "Logout" option in the bottom sheet.
  • Ensure the "Logout" option clears the user's session and navigates back to the login screen.

Acceptance Criteria

  • The bottom sheet should slide up from the bottom of the screen when triggered.
  • It should include an option that allows users to logout.
  • On pressing the logout option, the user should be logged out and redirected to the login screen.
  • The bottom sheet should be dismissible by tapping outside its area or dragging it down.

Add Trailing Icon to Password TextField to Toggle Visibility

Description

Currently, our password input field lacks a feature to toggle the visibility of the entered password. To enhance user experience, we need to add a trailing icon to the password text field. This icon should allow users to toggle the visibility of their password.

Tasks

  1. Add a trailing icon to the password text field.
  2. Implement functionality to toggle the visibility of the password when the trailing icon is tapped.

Acceptance Criteria

  • A trailing icon (eye/eye-off) is visible in the password text field.
  • When the icon is tapped, the visibility of the password toggles between obscured and visible.
  • The icon should change accordingly to indicate the current state (e.g., eye for visible, eye-off for obscured).

Implementation Details

  1. Use a TextField widget with obscureText property.
  2. Add an IconButton as a trailing icon within the TextField.
  3. Manage the state of password visibility using a boolean variable.
  4. Update the obscureText property and the icon based on the state.

Update Options Menu in Others' Profiles

Description:
We need to update the existing options menu in others' profiles to include additional functionalities. The updated menu should include the following items:

  • Report
  • Block
  • Share Profile To
  • Website Url
  • Cancel

Requirements:

Update the current options menu to include the following items:

  • Report: Allow users to report the profile.
  • Block: Allow users to block the profile.
  • Share Profile To: Enable users to share the profile via different platforms.
  • Website Url: Provide a link to the user's website, if available.
  • Cancel: Close the options menu without taking any action.

Design Profile Page

  • Create UI wireframes for the profile page.
  • Implement UI design using Flutter widgets.
  • Integrate user data retrieval from the authentication module.
  • Add functionality to edit and update user profile information.

Feature Request: Implement Functions to Save Posts and Display Them on Self Profile Screen

Summary

This feature request aims to add functionality to save user posts to Firestore and display them on the user's profile screen in the app.

Details

We need to implement the following:

  1. Save Posts: Functions to save posts to Firestore.
  2. Display Posts: Functions to fetch and display posts on the user's profile screen.

Save Posts

  • Create a PostService class that handles saving posts to Firestore.
  • Implement a savePost method that takes a Post object and saves it to the Firestore posts collection.

Recreate Wave App: Cleanup and Firebase Integration

The goal of this issue is to recreate the Wave app, addressing outdated dependencies, cleaning up old branches, and reintegrating Firebase services. The Wave app is undergoing a revival, requiring a cleanup of the existing codebase and the reintegration of essential services. This issue serves as a starting point for this process.
Delete Old Branches:

  • Identify and remove outdated branches that are no longer relevant to the project.
  • Review and update dependencies in the pubspec.yaml file to their latest stable versions.
  • Integrate Firebase Services:

Feature Request: Read and Delete Notifications

Description

This feature will allow users to read and delete notifications within the application. The functionality will include:

  1. Displaying a list of notifications for the user.
  2. Marking notifications as read.
  3. Deleting notifications from the list.

Requirements

  • Each notification will have a "Mark as Read" button.
  • Each notification will have a "Delete" button when swiped right.

there is a problem

Hi @Alpha17-2, There is a problem when I run the app from the terminal the app opens but with a white screen and nothing appears as shown in the picture
Please I want a solut
1
ion to this problem

Implement Unit Tests for HomeNavController Navigation Functionality

The HomeNavController class, responsible for managing the navigation functionality of our app's bottom navigation bar, requires comprehensive unit tests to ensure its reliability and correctness. We need to create test cases covering various scenarios and edge cases to validate the navigation logic thoroughly.
Issue Description:

Objective:
The objective of this issue is to implement unit tests for the HomeNavController class's navigation functionality.

Importance of Testing:
Testing is crucial to verify that the navigation logic behaves as expected in different scenarios and edge cases, ensuring the stability and robustness of our app.

Proposed Solution:
We need to write test cases that cover various aspects of the navigation functionality, including switching between screens, handling out-of-bounds indices, and reacting to user interactions.

Collaboration:
Contributors are invited to collaborate on writing test cases to improve the overall quality of our app.

Expected Outcome:
Once the test cases are implemented and pass successfully, a pull request should be raised to merge the changes into the main codebase.

Remove Native Splash Screen for Flutter

Currently, our Flutter project utilizes the native splash screen functionality. However, this approach might not align with our project requirements or preferences. Native splash screens can sometimes lead to inconsistencies across platforms and can limit customization options.

To ensure a consistent and customizable splash screen experience, we should consider removing the native splash screen and implementing a custom splash screen solution within our Flutter app.

Tasks:

  • Investigate the current implementation of the native splash screen.
  • Determine the impact of removing the native splash screen on app performance and user experience.
  • Research and identify alternative solutions for implementing a custom splash screen in Flutter.
  • Develop and integrate a custom splash screen solution into the Flutter app.
  • Test the custom splash screen across various devices and screen sizes to ensure consistent behavior.
  • Document the process of removing the native splash screen and implementing the custom solution for future reference.

Create a New Post Feature

Summary

Implement a feature that allows users to create new posts. This feature should support text, mentions of other users, and media files (images and videos).

Requirements

  • Create a new post model that includes text, mentions, and media files.
  • Implement a method to upload media files to Firebase Storage and retrieve their URLs.
  • Create a UI that allows users to input text, mention other users, and select media files.
  • Ensure that the new post is saved to the database with the correct information.
  • Handle edge cases and errors, such as failed uploads or empty input fields.
  • Add tests for the new feature to ensure reliability.

Resources

Acceptance Criteria

  • Users can create posts with text, mentions, and media files.
  • Media files are uploaded to Firebase Storage and their URLs are retrieved correctly.
  • The UI for creating a new post is user-friendly and responsive.
  • All edge cases and errors are handled appropriately.
  • Tests are written and pass successfully.

Implement Function to Check Unique Username in Database

Description

We need to implement a function in our Flutter app that checks whether a username already exists in the Firebase Firestore database to ensure each username is unique. This function should query the 'user' collection and return whether the username is available or already taken.

Acceptance Criteria

  • The function should accurately check the existence of a username in the Firebase Firestore database.
  • The UI should display appropriate messages indicating whether the username is available or taken.
  • Ensure proper error handling and user feedback.

Save Post ID in User Model's Attribute `posts` Whenever a User Posts Something

Description

Implement functionality to save the post ID in the posts attribute of the user model whenever a user creates a new post. This ensures that each user maintains a list of their post IDs for easy reference and retrieval.

Requirements

  1. Update User Model:

    • Ensure the user model includes an attribute posts, which is an array to store post IDs.
  2. Save Post ID:

    • When a user creates a new post, the post ID should be added to the posts array of the user who created the post.
  3. Firestore Structure:

    • User Document: { userId: string, posts: array of post IDs, ...other attributes }
    • Post Document: { postId: string, userId: string, ...other attributes }

Implementation Steps

  1. Update User Model:

    • Modify the Firestore user document structure to include a posts array if not already present.
  2. Create Post and Update User Document:

    • Implement functionality to create a new post document in Firestore.
    • After creating the post, retrieve the post ID.
    • Add the post ID to the posts array in the corresponding user document.
  3. Ensure Atomicity:

    • Use Firestore transactions or batch writes to ensure that both the post creation and user document update occur atomically.

Create New Screen for Displaying Other User Profile Details

Description

The objective of this issue is to design and implement a new screen that allows users to view detailed profiles of other users within the app. This screen will display essential information such as the user's display picture, cover photo, name, bio, and their followers and following counts.

Requirements

UI Components

  • Display Picture (DP): Should be prominently placed and allow easy identification of the user.
  • Cover Photo: Needs to be displayed at the top of the profile, spanning the width of the screen.
  • Name: Should be displayed prominently near the DP.
  • Bio: A short bio or description below the name.
  • Followers and Following Count: Visible and clickable, leading to a list of followers and followed users.

Functional Requirements

  • 1. The screen should load the user data dynamically from the backend based on the user ID passed to it.
  • 2. Tapping on followers or following should navigate to a new screen listing all respective users.
  • 3. The design should be responsive, adapting to various device sizes and orientations.
  • 4. Allow user to follow other users

Feature Request: Implement Edit Profile Screen

Description

As part of enhancing user interaction and personalisation in our application, there is a need to implement an "Edit Profile" screen. This screen will allow users to update their personal information and profile settings, including their profile picture, cover picture, name, bio, username, and account type.

Requirements

Functional Requirements

  • Users should be able to:
    • Change their profile picture
    • Update their cover picture
    • Edit their name
    • Modify their bio
    • Update their username
    • Select or change their account type

Non-Functional Requirements

  • The interface should be user-friendly and follow the application's design guidelines.
  • Changes should be updated in real-time on the user's profile once saved.
  • Ensure data validation for the username and other user inputs to prevent invalid data entries.

Tasks

  • Design the UI layout for the "Edit Profile" screen.
  • Implement the functionality to upload and change profile pictures.
  • Implement the functionality to upload and change cover pictures.
  • Add text fields for editing the name, bio, and username.
  • Create a dropdown or selector for changing the account type.
  • Integrate the screen with the backend to save and retrieve user data.
  • Write unit tests to ensure the functionalities work as expected.
  • Conduct usability testing to ensure ease of use.

Acceptance Criteria

  • The user should be able to navigate to the "Edit Profile" screen from their profile page.
  • All inputs (profile picture, cover picture, name, bio, username, account type) must be editable.
  • Changes must be saved to the backend database and reflected immediately on the user profile.
  • The app should handle errors gracefully, providing user feedback for failed updates or invalid inputs.

Enable block feature

  • Users should be allowed to block other profiles .
  • After blocking any user one should't see their posts.
  • After blocking any user one should't see their comments.
  • Blocked users shouldn't have conversation
  • Report comments

Update Menu Options in Self Profile

Description:

We need to update the menu options in the self-profile to provide users with more comprehensive settings and information. The following options should be added to the menu:

  • Settings
  • Blocked Contacts
  • Help
  • About

Tasks:

  • Add "Settings" option to the menu.
  • Add "Blocked Contacts" option to the menu.
  • Add "Help" option to the menu.
  • Add "About" option to the menu.

This will improve the user experience by giving easy access to essential settings and information.

Initialise post controller variables with default values after successful post

After a post is successfully posted, the post controller variables should be reset to their default values. This ensures that the input fields and related state are cleared for the next post.

Tasks

  • Identify the post controller variables that need to be reset.
  • Implement the logic to reset these variables to their default values after a successful post.
  • Test to ensure that the variables are correctly reset.

Implement Notification Feature for User Follow Actions

Description

We need to implement a feature that sends notifications to users when they are followed by another user. This enhancement aims to improve user engagement by informing users about new followers in real-time.

Database Schema Changes

  • Add a table to store notifications with fields for:

    • Notification ID
    • User ID (the user receiving the notification)
    • Follower ID (the user who initiated the follow)
    • Timestamp
    • Notification status (read/unread)
  • Notification UI: Add a notification icon and dropdown to the user interface.

    • Display the list of notifications with user avatars, follower names, and timestamps.
    • Mark notifications as read when viewed by the user.
  • Real-time Updates: Update the notification dropdown in real-time when a new follower is added.

Testing

  • Unit tests for the backend logic to ensure notifications are created correctly.
  • Integration tests to verify the end-to-end functionality of the notification feature.
  • UI tests to ensure notifications are displayed and updated correctly in the frontend.

Backend Development:

  • Develop the follow API endpoint.
  • Integrate notification creation logic.
  • Implement real-time notification delivery.

Duplicate user entries in search results

When performing a user search in the app, the same user appears twice in the search results—once for their username and once for their name. This should be fixed so that each user only appears once in the search results.

Expected Behavior
The user should appear only once in the search results, regardless of whether the search term matches their username, name, or both.

Actual Behavior
The user appears twice in the search results—once for the username match and once for the name match.

Implement Feed Screen

  • Design UI layout for the feed screen.
  • Fetch and display posts from the backend server.
  • Implement features like liking, commenting, and sharing posts.
  • Add pagination or infinite scrolling for loading more posts.

Implement Username Suggestion and Storage During User Sign-Up

Description

Implement functionalities to suggest and store usernames during the user sign-up process. The initial username should be a combination of the first three letters of the user's full name (excluding any white spaces) and some digits. Ensure that this username is unique by checking against existing usernames stored in the Firebase Firestore database.

Requirements

  1. Username Generation:

    • Extract the first three letters from the user's full name, ignoring any white spaces.
    • Append a random or sequential set of digits to the extracted letters to form an initial username suggestion.
  2. Uniqueness Check:

    • Check the generated username against the usernames stored in the Firebase Firestore database.
    • If the username already exists, modify the username by changing the appended digits and recheck until a unique username is found.
  3. Storage:

    • Once a unique username is generated, store it in the Firebase Firestore database along with the user's other sign-up details.

Implement New App Icon for Wave on Android

We need to update the Android app icon for Wave to enhance visual identity and ensure consistency across our branding.

Objectives

  • Create and implement a new app icon that aligns with our brand's visual standards.
  • Ensure the new icon adheres to Android's adaptive icon guidelines.

Tasks

  1. Design the Icon:

    • Design a new high-resolution app icon that reflects the brand's aesthetics.
    • Ensure the icon design is simple and scalable without losing impact on smaller sizes.
  2. Generate Icon Sizes:

    • Prepare the icon in multiple sizes for different device resolutions:
      • mipmap-mdpi: 48x48 px
      • mipmap-hdpi: 72x72 px
      • mipmap-xhdpi: 96x96 px
      • mipmap-xxhdpi: 144x144 px
      • mipmap-xxxhdpi: 192x192 px
  3. Implement Adaptive Icon:

    • Create both foreground and background layers for the adaptive icon to support modern Android devices.
    • Use XML files to define the adaptive icon in res/mipmap-anydpi-v26.
  4. Update Android Project:

    • Replace the old icon files in the respective mipmap folders with the new ones.
    • Verify that the AndroidManifest.xml file references the correct mipmap resource for the android:icon.
  5. Testing:

    • Test the icon on multiple devices and emulators to ensure it displays correctly across different screen sizes and resolution settings.
    • Ensure the icon meets the visual standards on various Android UI themes and backgrounds.

Create a splash screen with the logo in center

Implement a splash screen feature for the Wave app that displays the app's logo at the center of the screen upon launch. A splash screen provides users with a visual indication that the app is loading and helps establish brand identity.

  • Design the layout for the splash screen, ensuring the logo is prominently displayed at the center.
  • Integrate the app's logo into the splash screen design.
  • Implement code logic to show the splash screen upon app launch and transition to the main screen after a specified duration (possibly 2 seconds for now , may change later).
  • Test the splash screen across different device sizes and resolutions to ensure consistent display.

License Issue

Is it MIT or GPL?

I think choose one.

And if you are going with GPL then mention what someone has to do in order to use this app in production after white labelling it.

Good work btw.

Feature Request: Share Post as Message

Description

This feature will enable users to share a post as a message to another user. The functionality will include:

  1. A share button on each post.
  2. A dialog box that appears upon tapping the share button, suggesting 5 recent users with whom the user recently chatted.
  3. A search bar to search for other users in their following list.
  4. The ability to select a user and send the post as a message.

Requirements

1. Share Button

  • Add a share button to each post.

2. Dialog Box

  • When the share button is tapped, a dialog box should appear.
  • The dialog box should suggest 5 recent users with whom the user has recently chatted.
  • The dialog box should include a search bar to search for other users in their following list.

3. Send Post as Message

  • The user should be able to select a user from the suggested list or search results.
  • Upon selection, the post should be sent as a message to the selected user.

User Interface

Share Button

  • Add a share button icon (e.g., a paper plane or share icon) to each post.

Dialog Box

  • The dialog box should display the 5 recent users.
  • The dialog box should include a search bar at the top.
  • Each suggested user and search result should be displayed with their profile picture and name.
  • Each user in the list should be selectable.

Search Bar

  • The search bar should filter the following list of the user as the user types.

Implement User Authentication

Enable users to sign up, log in, and manage their accounts securely within the Wave app.

  • Design the authentication UI, including screens for user registration, login, and password reset.
  • Create a User model class with necessary data elements (e.g., email, password) and functions for managing user data.
  • Implement backend API endpoints for user registration, login, and password reset.
  • Implement client-side validation for user input (e.g., email format, password strength) to enhance security.
  • Develop error handling mechanisms to handle authentication failures and provide informative error messages to users.
  • Implement secure storage of user authentication tokens on the client side (e.g., using encrypted storage).

DFD for Authentication module

Implement Custom `timeAgo` Function and Remove External Library

Overview

We need to implement a custom timeAgo function to calculate the difference between two DateTime objects and format it in a human-readable string like "1d ago", "1h ago", "1m ago", "just now". Additionally, any existing external library used for this task should be removed to reduce dependencies.

Task Details

Implement Custom Function:

  • Create a new method called timeAgo that takes a DateTime object and returns a formatted string based on the difference from the current time.

Feature - Upload video posts

Users should be allowed to add videos as their posts .
While uploading the video , it must get trimmed to 1 minute.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.