Giter VIP home page Giter VIP logo

innotable's People

Contributors

batyshchevkirill avatar dmfrpro avatar goshmar avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

innotable's Issues

Console view

Develop login screen

  1. Email
  2. Password
  3. Login button

Develop Event editor (main page)

Develop console UI for editing events

  1. Event name
  2. Event description
  3. Attached files list
  4. Attached URLs list
  5. Groups list
  6. Tags list

Develop event history

Develop console UI for viewing and selecting event history

  1. Sort by name / date
  2. Select event for opening it in event editor

REST API frontend part

REST API for frontend part

  1. Wrap input data to JSON files and provide REST API for sending them
  2. Work collaboratively with backend developers who ar working on backend REST API schema

OAuth2 implementation

Configure database admins and roles

Add admins and roles

  1. Developer (Full access)
  2. Admin (Full access excluding database)
  3. Table: id, email, password

Setup OAuth2 with SSO and Spring Security

  1. Learn OAuth2 and SSO technologies
  2. Learn the basics of Spring Security
  3. Provide authorization of developers and admins
  4. Include a basic login screen page without any design

Design a prototype

Setup UI/UX design in Figma

  1. Login page
  2. Event editor
  3. Event history list
  4. App settings
  5. Context menus

Setup REST API design in Postman

  1. Getting event data

Create Moodle LMS

Create local LMS Moodle and design entry interface and parameters for getting API

Setup project environment

Introduce more branches

  1. main
  2. backend-testing
  3. frontend-testing

Create a skeleton of the code

  1. Initialize an empty buildable project running on OpenJDK 18.0.1, Maven 4.0.0 and Springboot
  2. Configure pom.xml: Add JUnit 5.8 and log4j2 dependencies, create an Application class with the main() method
  3. Add .gitignore, README.md, and LICENSE files

Setup GitHub repository

  1. Configure project deployment with Maven in GitHub Actions
  2. Configure repository security features in GitHub Security

Setup WebServer and DataSource

  1. Download, and install PostgreSQL 14.3 and the latest JDBC
  2. Integrate empty data source into the project locally
  3. Download Apache tomcat 10 and configure it

Mock model

Groups and tags

Groups:

  1. Bachelors (BS21...)
  2. Masters (MS21...)
  3. Ph. D / TA
  4. Employee (DoE, 319...)

Admin tags:

  1. Juridical
  2. Extracurricular
  3. Internship / Opportunity
  4. Campus
  5. Other

Note that admins must be able to add their tags and groups

Event data classes

Introduce event data classes (LMS event and Admin event)

Admin event:

  1. Name, description
  2. Attached files, URLs
  3. Groups, tags lists
  4. Importance: Obligatory/Optional (can be introduced using tags)

LMS event:

  1. Name, description
  2. Attached files, URLs
  3. Groups, tags lists
  4. Tag

Admins and developers mock table

  1. id, email, password first name, last name
  2. roles: admin, developer

Configure Docker

Configure Docker

  1. Learn how to deploy an application and pack it into Docker image
  2. Introduce deployment in Github Actions

Introduce controller logic

REST controller

  1. Combine REST API with DTO classes and write corresponding REST requests
  2. Provide Unit testing of the controller

Moodle API wrapper

Core calendar get calendar events

  1. Wrap Moodle API and get users' calendar data (core_calendar_get_calendar_events)
  2. Try to take a data each 15 minutes
  3. Write Unit tests

Update data-classes

Too many useless wrapping

Remove Group and Location classes and use String instead.

Calendar access (Outlook Graph API)

Develop Outlook Calendar API wrapper

Develop Outlook Calendar API wrapper using Microsoft Graph API

  1. Select members by their group / all members
  2. Access to their private calendars

Develop REST API schema

REST API schema

  1. Provide diagrams describing what JSON data will be transferred according to our user stories
  2. Learn what DTO is
  3. Implement DTO classes

Database access

JDBC wrapper

Provide an implementation of the Model using PostgreSQL and JDBC

Configure maven

Update Maven settings

  1. Make [package] configuration that allows to build a project to .jar file with included dependencies

Project architecture

Learn and design MVC architecture

  1. Introduce an updated use-case diagram
  2. Introduce a UML diagram following MVC principles

Update project skeleton

  1. Add corresponding packages and interfaces according to the UML diagram

Bring-up own Moodle server

Moodle server

  1. Runs on VK Cloud
  2. Add several testing users with testing data, allow API access
  3. Add some courses, assignments and update their calendars

Data classes implementation

Groups and tags

Introduce groups and tags

Groups:

  1. Bachelors (BS21...)
  2. Masters (MS21...)
  3. Ph.D. / TA
  4. Employee (DoE, 319...)

Note that admins must be able to add their own tags and groups

Event data classes

Introduce event data classes (LMS event and Admin event)

Admin event:

  1. Name, description
  2. Attached files, URLs
  3. Groups, tags lists
  4. Importance: Obligatory/Optional (can be introduced using tags)

LMS event:

  1. Name, description
  2. Attached files, URLs
  3. Groups, tags lists
  4. Tag

New calendar create_event page

Calendar page

  1. We have already conducted a meeting related to calendar page and how it will look like. Ask @dmfrpro for details
  2. Write necessary JS scripts for the calendar

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.