Git Product home page Git Product logo

astro's Introduction

Hi there 👋

astro's People

Contributors

aavild avatar aleksanderrdl avatar decode84 avatar dependabot[bot] avatar murmeldyret avatar silverbrother avatar soft-mrj avatar williamwoldum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

astro's Issues

Discord better frontend (very easy)

Currently it looks very bad and it's not possible to differentiate between messages from discord and mesages from ProjectHub

Frontend:
src/resources/views/project/_partial/centerBar/_partial/discordWidget.ejs
public/scripts/discordChat.js
public/scripts/discordAuth.js

backend provided vars:
src/app/Http/ServiceControllers/DiscordController.js

Websocket connects with:
src/app/WebSocket/DiscordChatSocket.js

Add ESlint

Maybe it could be an idea to add ESLint, this way we can make rules for the project that everybody must follow.

Example

{
    "rules": {
        "semi": ["error", "always"],
        "quotes": ["error", "double"]
    }
}

https://eslint.org/

Check in system

Keeps track of meeting times, where memebers can check in when they meet in at the start of the day. For checking if members are late frequently.

Project Dashboard (frontend) + anchor links

The dashboard is the main page that the user see when they interact with the service. This page should follow the design choices of the muck ups. Furthermore, it should have a modular approach so that it can be expanded if needed.

User Authentication (Backend)

User authentication, skal inkludere hashing af password, hvor der skal gøres brug af bcrypt. Som også skal verificere det indtastet password. Derudover skal der også laves check på om username/email findes i databasen.

Derudover skal der valideres på det indtastet input, så som

  • 8 min length

Discord send message

An action that send a message to a discord message channel. This should be done from an action in the dashboard front end. Further, there should be a backend implementation that communicates with discord.

Discord Setup instructions

User doesn't know how to link, add server, add bot and type /link command. Add to Frontend so they know ;)

Unit-Test

Unit-test needed to complete a MVP.

Dashboard todo list

With use of Trello API open a list of all issues/tasks/whatever the user is assigned to.

Discord server templates

The initial setup process of Discord servers. This should make a template for a discord server available for the user.

Major security update

"Cross-site request forgery, or CSRF/XSRF, is an attack that relies on the user's privileges by hijacking their session. This strategy allows an attacker to circumvent our security by essentially deceiving the user into submitting a malicious request on behalf of the attacker."

There needs to be a CSRF tag or validation on every post request, in order to migrate this attack.

https://www.npmjs.com/package/csurf
https://www.npmjs.com/package/express-rate-limit
https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html

Migrate security issues.

  • XSS
  • Rate limits
  • Signed session
  • Cookie
  • CSRF
  • Other....

Zotero

Add Zotero in some way for managing references and sources. Could be a dashboard for noauther, nodate etc.
or setting up Zetero itself
or being able to see references in the project dashboard

Database Seeding

Seed the database with fake data for the user, project and so on. This will give us data to work with, instead of having to create a user each time or mass seed data. Say if there are 100 projects and 500 users.

Structure example.

  • Database (Folder)
    • Seeder (Folder)
      • UserTableSeeder.js (file)
      • ProjectTableSeeder.js (file)

UserTableSeeder.js example

const User = require('../Models/User');

const password = "123456789";

const users = [
    new User({
        name: 'John',
        email: '[email protected]',
        password' : password,
    }),
];

users.map(async (user, index) => {
    await user.save((err, result) => {
        if(index === users.length - 1) {
            console.log('Seeded the database');
            // Disconnect from database
        }
    })
});

Dark theme!

Or the opposite. Depends on what we do. Add the option to be able to switch between dark theme and light theme

Diagrams.net template

Make so that the user can create a Diagrams.net diagram from the project dashboard and make it available for others in the project.

Trello Template

Add so that the user can create Trello boards in the project dashboard and make so that other users can view it.

Create Issue in Github

A way to plan upcoming software features in GitHub directly from the project hub itself.

Supervisor role, for basic view of the project

A view-only role that allows for supervisors in a project to go in and see only what the project group has defined as public. This idea could be extended to the project group compiling report etc.

Discord server connection

The proof that the service has a connection to a discord server and therefore make development of features possible

Role system for members in a project

A system for projects which adds roles such as Project Leader, Member, referent and supervisor
This is also a little prework for the supervisor issue

Test system

Implementing test environment for the project, to prove that the code is correct.
Also, code should not be able to push unless tests have passed.

Overleaf template

Make so that the user can create an overleaf project from the project dashboard and add the others(or a link) for them to edit.

Github template

A template for fast deployment of GitHub. This is part of the initial setup process of the project.

Trello add card

In the project dashboard make so that users can add cards to a Trello board

Dotenv configuration (Backend)

There need to be added an dotenv (environment) file that holds the mongodb database connection string, generated secret key, and what else that might be useful to have in one place. This will ensure that everybody can work on the project, but with different configuration eg. database name, e.t.c.

https://www.npmjs.com/package/dotenv

Login Page/Register Page (frontend)

The frontend for the backend login system. Whoever is developing the backend part might already have a basic login version, but more advanced stuff like reminding the user to have minlength and uppercase letters in the password can be handled in the frontend.. Also a nicer look (if it isn't already) is always good
Finally add proper navigation:
projects overview as main page
if without session -> login page
login page -> register or projects page
register page -> login page

Project system (Backend)

A system that manages projects all across the service. This system should provide the frontend with the necessary data, so that it can display it.

A user should only be able to see their own projects.

Discord Reinstate OnGuildCreate

Currently we only fully support /link command for linking a specific channel to ProjectHub
Linker provides buttons to select which project to select. OnGuildCreate (OnGuildCreathandler.js) needs to similarily prompt the user for which channel to link and then call the linker

Github Frontend

Generally

Currently the path localhost/api/github points at ressources/views/project/githubtemp.ejs as the frontend
This should be changed to be a widget like the others although the controller is still WIP

Webhook Frontend

The messages requires github-api-2 branch to be merged in first, but after that there will be webhook messages(max 10) which will be reachable using fetch() in public/gitHubWebhook.js
fetch('/api/github/webhook?projectID=627516c7476e393f541af189', { method: 'GET', cache: 'no-cache' }) .then(response => response.json()).then(data => console.log(data));
example output (json): exampleoutput.json.txt

As long as the "Sexytime" project isn't deleted this fetch() will work, but if the fetch() stops working just use the example.json instead

  • Generally
  • From the webhook message -> Username: action/pullrequest
  • add pullrequest title or how the action is performed(ex "branch -> dev"/"Github Frontend")
  • Add anchorlink to username with the user
  • Add anchorlink for push/pullrequest
  • Add Message
  • Add timestamp
  • Maybe a toggle menu for viewing "body" of a pull request. A body of a pull request is the message below the title in a pull request. So this Pull requests body would be this beautiful desciption of what needs to be done you're reading right now
  • etc.
  • If needed the webhook can provide addtional details in the server. Uncomment src/app/Http/Githubcontroller.webHookReceiver() // console.log(req.body) for a raw Webhook and add more details to message

Absence system

Notifies users about members absence on particular days

Discord channel feed in hub

A feed in the dashboard that allows the user to see messages in a discord feed from the discord server.
The frontend needs space for this.
The backend must be able to request messages in a given feed.

Send files on Discord

add an action which allows for users to upload files to the project dashboard and send it to Discord

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.