Giter VIP home page Giter VIP logo

cos301-se-2023 / koja Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 2.0 38.73 MB

An AI-powered scheduling tool designed to seamlessly manage your time by integrating with your calendar and scheduling events dynamically based on your free time. It efficiently balances your professional and personal events, ensuring optimal utilisation of your time.

Kotlin 34.84% Swift 0.29% Objective-C 0.01% CMake 2.11% C++ 2.70% C 0.16% Dart 33.90% HTML 0.21% Ruby 0.31% Dockerfile 0.27% Python 5.26% PureBasic 2.31% Java 0.01% Jupyter Notebook 17.63%
ai calendar-management flutter google-cloud-platform kotlin-spring-boot personal-productivity scheduling time-management

koja's Introduction

Pull Requests Issues Repo Size Koja Build Status

Koja Icon

Project Description:

Koja is a system designed to enable more efficient time utilization through dynamic and fixed time allocation for specific tasks a user wants to complete. The primary goal of Koja is to alleviate the challenges of schedule management with minimal effort from the user.

Advertisement

Koja_advert.mp4

Documentation

Demo Slide & Video

Additional Documentation

Technologies

  • Flutter, SpringBoot, Kotlin, Amazon RDS, Amazon DynamoDB

Team

📧 Team email: [email protected]

Group Members:

Team Member's Details Accounts
Marthinus Ettienne van Zyl(u19012366)

Ettienne has two years of experience in using and building projects with Flutter. One of these projects was successfully deployed and is still in use by the company it was built for. This project also utilised Firebase's Firestore database.In addition, Ettienne has one and a half years of combined experience in leading and organising projects, all of which have been highly successful. While this project won't necessarily utilise Java, it's worth noting that Ettienne has over a year and a half of experience using it. Kotlin and Java are very suitable for this project. Ettienne has completed courses in both Machine Learning and Deep Learning, provided by MatLab.
LinkedIn GitHub
Matjere J. Matseba(u21609633)

Matjere possesses a diverse range of skills that makes him an asset to this project. Given his experience in backend API development and knowledge of Spring Boot, he is capable of developing and implementing efficient systems. In addition, Matjere's skills in conceptualising and designing systems make him an ideal candidate for understanding this project's requirements. His extensive experience with Java, JavaScript, and TypeScript may also translate well to the proposed technologies for this project. Additionally, Matjere has experience in designing and prototyping front-end applications, enabling him to create user interfaces that are both intuitive and visually appealing. It's worth noting that Matjere has completed the same courses in Matlab as Ettienne, which further adds to his qualifications for the project's AI needs.
LinkedIn GitHub
Unarine L. Netshifhefhe(u20505656)

Leo has experience with being a UI Engineer and Designer with expertise in HTML, CSS, and JavaScript. It's worth noting that Leo has a good understanding of UI/UX design principles and can create visually appealing and user-friendly interfaces. His knowledge and experience in front-end development makes him an asset in creating responsive and interactive web applications. Leo has also completed courses in Matlab as Ettienne for the AI component of this project, which also makes him a valuable addition to our team.
LinkedIn GitHub
Lesiba T.F. Setsiba(u21566382)

Lesiba is a highly skilled and versatile developer with a strong background in HTML, CSS, JavaScript, PHP, and database management, including SQL. He is proficient in working with APIs, Angular, and Ionic frameworks, and has a solid foundation in Java. Lesiba's ability to quickly adapt to new programming languages and his eagerness to learn new software make him a valuable asset to the team. Notably, he has completed the same AI courses as Ettienne, which further strengthens his capabilities in the AI component of the project. With his diverse range of skills and commitment to continuous learning, Lesiba is well-prepared to contribute to the success of this project.
LinkedIn GitHub
Elias S. Makhonjwa(u18034332)

Elias brings a strong skill set to the project, with advanced proficiency in Node.js and relational database management, ensuring efficient backend development and data handling. He has intermediate experience in Spring Boot, Python Spacy, and Angular/Ionic, which allows him to contribute to various aspects of the project. Although Elias has no prior experience with Flutter, he is eager to learn and adapt to any new technologies that may be required. Furthermore, Elias has completed the same AI-focused courses as Ettienne, equipping him with the necessary knowledge to contribute to the AI components of this project.
LinkedIn GitHub

koja's People

Contributors

lesibafrans avatar matjerej avatar mrme-codesmith avatar u18034332 avatar unarineleo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

koja's Issues

Setup GitHub Repo Structure

@u19012366, please setup the GitHub Branch Structure

Your tasks are:

  • Setup main branch restrictions
  • Setup dev branch for active development

Research PyTorch and TensorFlow Models

@U18034332, please delve into the existing models in PyTorch and TensorFlow that we might leverage or adapt for our project.
In the process, ensure to provide the following information in your documentation:

  • Determine potential applications of AI models within our project, and provide justification and methodology for their usage.
  • Explore and document relevant PyTorch models that align with the identified tasks.
  • Explore and document pertinent TensorFlow models that align with the identified tasks.

The documentation should be comprehensive and provide a clear understanding of the models.

Your tasks are:

  • Identify and justify potential applications for AI within our project
  • Investigate and document relevant existing PyTorch models
  • Investigate and document relevant existing TensorFlow models
  • Compile a comprehensive final documentation

Add RSA encryption for front- and back-end comunication

@u19012366, please add the functionality for the Back-end to communication with the front-end using RSA encryption.

Your tasks are:

  • Add Backend RSA encryption
  • Add front-end RSA encryption
  • Ensure they can communicate with each-other

Refactor User Login/Register Functionality

@UnarineLeo, please update the current implementation of the Login / Register system to use the Google Authentication system to get an OAuth key and store it in the frontend's context.

Your tasks are:

  • Refactor Login / Register system to use Google Authentication
  • Store the OAuth key in the context

Update Time Boundries

Update the time boundaries to automatically establish a dynamic time boundary upon user account creation. This will be used as a default to schedule dynamic events within these boundaries, if no other specific boundary is selected for scheduling the dynamic event.

Will also serve as the time the user will be at their home location

**IDEA: **
Allow time boundaries to be assigned a location,
eg. Home for sleep time boundary, Work for Work time boundary

Implementation of GoogleCalendarAdapter

@MatjereJ, please implement the concrete implementation for the GoogleCalanderAdapter class, please refer to the class diagram on the drive if you have any issues.

Your tasks are:

  • Implement the class
  • Write Unit Tests for the class
  • Add descriptive comments for documentation

Tech Stack & Architecture Designs Diagrams

@u19012366, you need to work on the tech stack and architecture designs. This should include the following in the document:

  • List of all the technologies we'll be using in our project, with explanations as to why they will be used.
  • A clear and concise architecture design that shows how all these technologies will work together.

The documentation should be thorough and provide a clear understanding of the tech stack and architecture.

Your tasks are:

  • Determine and list all technologies to be used in the project and explain why they were chosen
  • Develop an architecture design
  • Document how the technologies will interact within the architecture
  • Write a final comprehensive documentation

Implementation of Authentication Class

@LesibaFrans, please implement the Authentication class, please refer to the class diagram on the drive if you have any issues.

Your tasks are:

  • Implement the class
  • Write Unit Tests for the class
  • Add descriptive comments for documentation

Fixing the CI-CD pipeline

@u19012366, please fix the CI/CD Pipeline

Your tasks are:

  • Making the current main thread compile
  • All PR's into dev should run Github Actions
  • Remove Github Actions to be run in main ( since it's already ran in dev )
  • Add testing environment and building environment

Refactor OAuth System by adding JWT token support

@u19012366 please refactor the current get events system to make use of OAuth keys provided by the login system.

You tasks are:

  • Refactor get Events tasks to use an OAuth key
  • Refactor current System to create JWT tokens
  • Add Support for token renewal

Setup Repo CI/CD Pipeline

@u19012366, please implement the CI/CD pipeline such that the main branch is for production, the dev branch for active development and feature branches branching from dev

Document Google Calendar and Google Places API

@MatjereJ, please thoroughly document the Google Calendar and Google Places APIs. Include information such as:

  • how these APIs work,
  • how to use them (general logic in pseudo code format),
  • potential issues and their solutions, etc.

The documentation should be comprehensive and provide a clear understanding of these APIs.

Your tasks are:

  • Understand and document Google Calendar API
  • Understand and document Google Places API
  • Identify potential issues and their solutions
  • Write a final comprehensive documentation

Implementation of appropriate User Repository Class

@U18034332, please implement the required functionality to store user data and also to get the users data.

Use the Class Diagram to determine what the structure of the database will be like and implement it accordingly

Your tasks are:

  • Create and Implement Repository Class For Database Communication

Study Adapter/Strategy Pattern for Calendar Integration and Flutter Quick Start

@UnarineLeo, please document how the Adapter and/or Strategy patterns can be used for Calendar integration and go through the Flutter quick start video. Include the following in the document:

  • Document how the Adapter pattern can be used for this integration,
  • Document how the Strategy pattern can be used for this integration,

*The documentation should be thorough and provide a clear understanding of the design patterns.

Your tasks are:

  • Study and document Adapter pattern
  • Study and document Strategy pattern
  • Watch Flutter quick start video

Implementation of Event Class

@U18034332, please implement the Event class, refer to the class diagram on the drive if you have any issues.

Your tasks are:

  • Implement the class
  • Write Unit Tests for the class
  • Add descriptive comments for documentation

AWS and Google Auth research documentation

@LesibaFrans, please research and document the AWS and Google Auth processes.
Include information such as:

  • how these processes work,
  • how to implement them(general logic in pseudo code format),
  • potential issues and their solutions, etc.

The documentation should be thorough and provide a clear understanding of these authentication methods.

Your tasks are:

  • Understand and document AWS Auth process
  • Understand and document Google Auth process
  • Identify potential issues and their solutions
  • Write a final comprehensive documentation

Crudding Events

@LesibaFrans and @u19012366 please work on the endpoints for CRUD-ing user events:

Your tasks are:

  • Adding Events
  • Updating Events
  • Deleting Events

Implementation of User Class

@u19012366, please implement the User class

Your tasks are:

  • Implement the class
  • Write Unit Tests for the class
  • Add descriptive comments for documentation

Get distances between locations

@MatjereJ, please implement the functionality to add a location to a complete graph structure that will have the connections between the locations be the traveling time and/or distance.

Your tasks are:

  • Create controller for handling add location tasks
  • Use the received location data's id in a complete graphs structure
  • Create method to auto update every n-amount of hours/minutes

Setup OAuth Token Retreival on Flutter

@u19012366, please setup the retrieval of the OAuth token after a user logs in with their Google Account and send it to the backend.

Your tasks are:

  • Implement OAuth retrieval functionality
  • Implement Backend endpoint to which it can be sent
  • Write tests for the backend functions

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.