decode84 / astro Goto Github PK
View Code? Open in Web Editor NEWP2 Project for AAU
License: MIT License
P2 Project for AAU
License: MIT License
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
Make so that you can view pull requests that needs to be merged from the project dashboard
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"]
}
}
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.
Could eventually use rate-limiting on certain routes, example login and registration. That way people can't spam the login nor the registration.
A frontend implementation of the muck ups created. This is the page that user see after the login page.
Frontend on GitHub, Discord, Trello. The design needed to be updated and integrated into the project.
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, 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
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.
User doesn't know how to link, add server, add bot and type /link command. Add to Frontend so they know ;)
Unit-test needed to complete a MVP.
With use of Trello API open a list of all issues/tasks/whatever the user is assigned to.
The initial setup process of Discord servers. This should make a template for a discord server available for the user.
"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.
Just for pleasure
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
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.
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
}
})
});
Or the opposite. Depends on what we do. Add the option to be able to switch between dark theme and light theme
Make so that the user can create a Diagrams.net diagram from the project dashboard and make it available for others in the project.
Add so that the user can create Trello boards in the project dashboard and make so that other users can view it.
A way to plan upcoming software features in GitHub directly from the project hub itself.
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.
The proof that the service has a connection to a discord server and therefore make development of features possible
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
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.
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.
A template for fast deployment of GitHub. This is part of the initial setup process of the project.
In the project dashboard make so that users can add cards to a Trello board
Adding a card in Trello sends an optional message on Discord
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.
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
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.
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
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
Notifies users about members absence on particular days
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.
add an action which allows for users to upload files to the project dashboard and send it to Discord
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.