Giter Club home page Giter Club logo

o2's Introduction

Frame 1000002619 NCS Oxygen (O2)

Repository License Android Kotlin Reactive

NCS Oxygen (O2) is a project management Android app designed to streamline and optimize task and project management using modern project management techniques. With support for methodologies like sprints, kanban maps, and more, Oxygen empowers teams to efficiently plan, organize, and track their projects.

Group 6611



Table of Contents

Technologies

  • Android SDK
  • Kotlin Coroutine for Asynchronous tasks
  • Workmanager Api
  • AndroidX Jetpack for navigation
  • Dagger/Hilt for dependency injection
  • Retrofit/OkHttp/Gson for networking
  • MVVM as architectural pattern
  • SQLite/Room for local data storage
  • Firebase Firestore, MongoDB as Cloud Databases
  • Firebase storage, dynamic links
  • Firebase cloud functions
  • Django rest for Mailing system, webhooks
  • Paging 3 for pagination

Key Features

Frame 1000002619

  • Agile project management : Leverage sprint planning, backlog management, and task tracking to effectively manage projects using agile methodologies.
  • Kanban boards : Visualize project progress and optimize workflow using customizable kanban boards.
  • Task management : Create, assign, and track tasks for team members, ensuring clear accountability and progress monitoring.
  • Collaborative workspace : Foster collaboration within teams by providing a shared platform for communication, file sharing, and discussions.
  • Reporting and analytics : Generate insightful reports and analyze project performance to make data-driven decisions.

Sections

1. Project Overview ✦

Task detail page provides comprehensive details about any task, including issue type, priority, duration, difficulty, status, position in kanban, fix in build version, story points, issue title, extensive issue summary with Markdown support, moderator list, and resource links for files, images, and video support.

Highlights:

  1. Issue Type, Priority, Duration, Difficulty, Status, Position in Kanban, Fix in Build Version, Story Points
  2. Issue Title
  3. Extensive Issue Summary with Markdown Support
  4. Moderator List
  5. Resource Links (Files, Images, Video)


2. Clean, Segregated Workspace ✦

Keep your workspace tidy and organized with our clean and segregated interface. Easily navigate between projects, tasks, and files without clutter.

Highlight:

  • Enhance productivity by providing a clutter-free environment.
  • Segregate tasks with filters for better focus and organization.
  • Streamline workflow by reducing distractions, focus on schedules.


3. Share updates with Channels ✦

Effortlessly share project updates and communicate with team members through dedicated channel chats. Keep everyone informed and engaged in real-time discussions.

Highlight:

  • Foster transparent communication by sharing updates in dedicated channels.
  • Facilitate collaboration and idea sharing among team members.
  • Ensure important information reaches relevant stakeholders instantly.


4. Schedule tasks for your Today ✦

Efficiently plan your day by scheduling tasks for today. Keep track of all the tasks you need to accomplish, ensuring no deadlines are missed.

Highlight:

  • Organize your daily workflow by prioritizing tasks for today.
  • Stay focused and productive with a clear list of tasks to complete.
  • Easily adjust and update your schedule as priorities change throughout the day.


5. Swiftly automate tasks creation with O2Mate AI ✦

Harness the power of O2Mate AI to automate the creation of tasks swiftly. Streamline your workflow by leveraging intelligent task generation.

Highlight:

  • Save time and effort by automating the creation of tasks.
  • Improve productivity by eliminating manual task creation processes.
  • Leverage AI-driven insights to optimize task creation and allocation.


6. Detailed Tasks ✦

Task detail page provides comprehensive details about any task, issues which includes :

  1. Issue Type ,Priority, Duration, Difficulty , Status, Position in kanban, Fix in build version, Story points
  2. Issue Title
  3. Extensive Issue summary with Markdown support
  4. Moderator list
  5. Resource links -> Files, Images, Video support


7. Syntax highlighting, Code viewer ✦

  • Clear Code Presentation: The code viewer provides a clear and structured presentation of code snippets, enabling users to easily view, understand, and analyze code within the project management app.
  • Syntax Highlighting: With syntax highlighting, the code viewer emphasizes different elements of the code, such as keywords, strings, and comments, enhancing readability and aiding in code comprehension.
  • Interactive Features: The code viewer may include interactive features like line numbering, code folding, and search functionality, allowing users to navigate through code efficiently and locate specific sections with ease.


8. Flexible Task Chat system ✦

Utilize our flexible real-time chat system within tasks, enabling seamless communication among team members. Share links, files, and code snippets with support for syntax highlighting.

Highlight:

  • Enhance collaboration by discussing tasks in real-time within the platform.
  • Share relevant links and files directly within task discussions for easy reference.
  • Collaborate on code snippets with syntax highlighting for improved readability and comprehension.


9. Add checks with Checklists ✦

Enhance task management by adding checklists to tasks. Break down tasks into actionable steps and track progress more effectively.

Highlight:

  • Improve task clarity by breaking them down into smaller, manageable steps.
  • Ensure thoroughness and completeness by checking off items as they are completed.
  • Increase accountability and transparency within the team by monitoring checklist progress.


10. Convinient Kanban board ✦

Experience the convenience of our Kanban board for visualizing and managing your project workflow. Easily track tasks as they progress through different stages.

Highlight:

  • Streamline project management with a visually intuitive Kanban board interface.
  • Easy task management and reordering.
  • Customize columns and labels to match your team's workflow for maximum convenience.


11. Notification tab keep you updated ✦

Stay updated with our notification tab, which keeps you informed of real-time updates, including task assignments, comments, and mentions.

Highlight:

  • Stay informed of important activities and changes within your projects.
  • Receive notifications for task assignments, comments, and mentions to stay engaged.
  • Customize notification settings to control the type and frequency of updates you receive.


12. Push Notifications ✦

Receive push notifications directly to your devices for instant updates on important events and activities within your projects.

Highlight:

  • Stay connected and informed even when you're not actively using the app.
  • Receive instant alerts for task assignments, comments, and mentions.
  • Enable/disable push notifications based on your preferences for optimal productivity.


13. Flexible Search System ✦

Utilize our flexible search system to find tasks with atomic-level precision. Filter your search queries to narrow down results and locate specific tasks efficiently.

Highlight:

  • Conduct granular searches to find tasks based on various criteria such as title, description, assignee, due date, and more.
  • Utilize advanced filtering options to refine search results and pinpoint specific tasks.
  • Enhance productivity by quickly locating relevant tasks without sifting through irrelevant information.


14. Team ✦

Description:
Easily access and view details of team members within the app. Get insights into their roles, responsibilities, contact information, and more.

Highlight:

  • Access comprehensive profiles of team members to understand their expertise and contributions.
  • View contact details such as email addresses or phone numbers for seamless communication.
  • Stay informed about team dynamics and roles to facilitate collaboration and coordination.


15. Offline Mode ✦

Stay productive even without an internet connection with our offline mode feature. Access and work on your tasks seamlessly, even when offline.

Highlight:

  • Continue working on tasks and projects without interruption, regardless of internet connectivity.
  • Access cached data and synchronize changes once you're back online.
  • Ensure productivity and efficiency, even in remote or low-connectivity environments.


16. Shake to Report ✦

Report bugs quickly and conveniently by shaking your device. Provide instant feedback to our development team for swift resolution of issues.

Highlight:

  • Streamline the bug reporting process with a simple gesture.
  • Encourage user participation in improving app stability and performance.
  • Expedite bug fixes by providing timely and actionable feedback.


17. Custom Crash Reporting System ✦

Oxygen has its own custom made crash reporting system called Crashman which listens for unhandled exception and crashes, wraps them into an Oxygen issue and opens a thread under Issues for faster bug recovery by the Oxygen Team.



MAD Score

summary kotlin

Module/Package structure

  • Model classes should be located in a model package.
  • Network related classes and interfaces (e.g. networking api's) are located in a remote package.
  • Local storage related classes (e.g. databases or dao's) are located in a local package.
  • Classes that do not correspond to a certain feature, should either be located in an all package, an util package or at the top level of the module.

These rules can be applied to either whole modules or packages depending on if you have feature modules or feature packages. An example for such a module/package structure can be found here.

Installation

To get started with NCS Oxygen (O2), follow these steps:

  1. Clone the repository: git clone https://github.com/arpitmx/oxygen.git
  2. Open the project in Android Studio.
  3. Build and run the app on an Android device or emulator.

Other

Dependencies

All dependencies are located in the Libs.kt file in the buildSrc folder. To implement them use implementation Libs.XXX.

Checking whether dependencies are ready to be updated, use ./gradlew refreshVersions. Afterwards the newer version is added as comments to the versions.properties file.

Testing

Every module should contain tests for its use cases:

  • test: Write unit tests for every ViewModel or Service/Repository. Mockito or PowerMock can be used to mock objects and verify correct behaviour.
  • androidTest: Write UI tests for common actions in your app. Use JUnit 4 Tests with Espresso. Some helper methods are available in EspressoUtils.

The dependencies for testing are located in the gradle/test-dependencies-android.gradle and gradle/test-dependencies.gradle files. If your module already implements gradle/library-module-android.gradle or gradle/library-module.gradle, then these dependencies are automatically added to the module.

If your module does not implement these standard library gradle files, add the test dependencies with:

apply from: rootProject.file("gradle/XXX.gradle")

ktlint

ktlint is a Kotlin linter and formatter. Using it is required to keep the code base clean and readable.

Use ./gradlew ktlintCheck to lint your code.

To conform to the rules either:

  • configure AndroidStudio accordingly.
  • use ./gradlew ktlintApplyToIdea to overwrite IDE style files. Read more here.

Resource Naming Conventions

The goal of these conventions is to reduce the effort needed to read and understand code and also enable reviews to focus on more important issues than arguing over syntax.

Bold rules should be applied. Italic rules are optional.

Component Rule Example
Layouts <what>_<where>.xml activity_main.xml, item_detail.xml
Sub-Layouts <what>_<where>_<description>.xml activity_main_appbar.xml
Strings <where>_<what>_<description> detail_tv_location
Drawables <what>_<where>_<description> btn_detail_background, card_overview_background
Icons ic_<description>_<where>.xml ic_close.xml, ic_location_pin_detail.xml
Dimensions <where>_<what>_<description>_<size> margin, detail_height_card, textsize_small
Styles <What>.<Description> Text.Bold, Ratingbar.Preview
Component Ids <what><Description> btnOpen, tvTitle

Recommended Reading

License

Copyright 2023 Hackncs

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

o2's People

Contributors

arpitmx avatar mohitsingh35 avatar neevgaur avatar iamshivang avatar

Stargazers

 avatar  avatar

Watchers

 avatar

o2's Issues

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.