GithubHelp home page GithubHelp logo

eshva / evehq-ng.prototype Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 1 MB

A proof of concept of an Electron application for the next generation EveHQ.

License: MIT License

C# 59.84% TypeScript 25.96% HTML 1.19% CSS 0.87% JavaScript 11.32% NSIS 0.83%

evehq-ng.prototype's People

Contributors

eshva avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

evehq-ng.prototype's Issues

After login an error related to not found module appears

Steps to reproduce

  1. Open application and ensure it's not logged in.
  2. Press Login button in application. An authorization page opens in a browser.
  3. Authorize the application.

Bug

An error message appears: The `logger` option function in electron-unhandled threw an error

Detailed error log

[Window Title]
Error

[Main Instruction]
The `logger` option function in electron-unhandled threw an error

[Content]
Error: Cannot find module '../net'
    at Module._resolveFilename (module.js:485:15)
    at Function.Module._resolveFilename (C:\Program Files\EveHQ NG\resources\electron.asar\common\reset-search-paths.js:35:12)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.get [as net] (C:\Program Files\EveHQ NG\resources\electron.asar\browser\api\exports\electron.js:11:16)
    at Object.logExceptionToApi [as logger] (C:\Program Files\EveHQ NG\resources\app.asar\main.js:184:32)
    at handleError (C:\Program Files\EveHQ NG\resources\app.asar\node_modules\electron-unhandled\index.js:28:12)
    at process.on.err (C:\Program Files\EveHQ NG\resources\app.asar\node_modules\electron-unhandled\index.js:70:4)
    at emitOne (events.js:120:20)

[OK]

Expected

  • No error appears.
  • Application successfully authorized and displays the character page.

Move bin folder one level up

Currently all compiled files placed into sources\bin folder. It should be moved on level up to not to mix sources and products.

Make controller routing easer

Currently routing defined on each controller. It should be made centralized to easier new controllers development.

Add logging in SPA using logging web-service

Hence it is a desktop application with a rich UI the UI (SPA) should have ability to log into some kind of log-files for the later support case resolution. My current vision of the solution is some singleton Angular-service that could be injected into components and other classes. This service should send log messages to some web-service log-endpoint.

It should be possible to enable or disable this logging through some kind of UI. The logging is enabled be default from application start and disabled by default as soon as SPA is started.

There should be an easy way for user to send all log altogether to the developers.

Add ability to localize application

There is a few parts to localize:

  • Angular SPA
  • Local web-service
  • Predefined game's static data like skill names

For SPA a good variant is ngx-translate. It supports separate JSON-files for different languages and a tool for localizable strings extraction. It's pretty configurable and seams easy to use in a number of ways.

Local web-service could be localizable in a number of ways but it's desirable to support the same JSON-schema like ngx-translate. Another requirement comes from the fact that the application will have a modular architecture. Hence it should be possible to keep localization resources splitted by modules. There is additional problem that it's easy to get user preferred language in API-controllers but most of strings will be present in different classes. Of course because it is a single-user application I can use some singular configuration object but anyway it's desirable to implement some per-request localization method. As a start: Askmethat-Aspnet-JsonLocalizer

Predefined game's static strings originally comes from SDE by CCP. There are a lot of localized strings and not all of them needed, just a small fracture. They will be required in both SPA and web-service. It's desirable to use the same approaches to get strings, not the third one.

Simplify debugging

  1. Electron application should start without web-service if ran using npm start (if serve specified).
  2. It should be possible to run web-service from Visual Studio.
  3. Compile main.ts on npm start

Optimize content of Electron package

  • Remove redundant JSON-files and containing them folders (electron, app) from dotnet publish directory.
  • Remove node_modules in the dist folder.
  • Remove redundant assets files (background.jpg).

Handle long service starting and its hartbit

Sometimes API-service starting a bit too long and application reports about an error. Or the service can halt for some time. There should be a way to handle such situations.

  1. Wait the server will come back for some timeout.
  2. If it is the forth halt it a row, go to step 4.
  3. If it doesn't, restart the service.
  4. Inform the user about the problem giving him choices to try again or quit or restart the application.

The API-service should be a singleton and should kill another API-service processes on start.

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.