Giter VIP home page Giter VIP logo

mementor's Introduction

Mementor

This is the final project from the apprentices from October to January 2019-20, this tool allows a better overview on the mentor/mentee relationship and track the meeting that they are having.

Tech stack

Back-End (Java):

  • Spring Boot
  • JUnit4
  • RestAssured
  • Maven

Front-End:

  • React.js
  • Jest and Enzyme

Infrastructure:

  • AWS
    • EB
    • RDS
  • Docker
  • CircleCI

Build

To build the project in your localhost, you need to build the front-end application to package it. After this we package our back-end, and then run our .jar file.

to do this run the localdeploy.sh file.

Now you can go to http://localhost:8080/ and the app will be deployed.

note that this steps can be found in the Dockerfile.

Frontend dev development

If you're only working on the frontend, you won't need to redeploy the entire application on every change. You can deploy the backend one and start a dev server that will hot reload the frontend code for you.

  • ./localdeploy.sh
  • npm --prefix front-end start

The app will now be accessible on http://localhost:3000

AWS Deployment

In order to deploy to AWS from your local machine, you need to run aws configure and setup the credentials that can be found on BitWarden.
Then you can run the deploy script:

./deploy-aws.sh integ

The artifact will be generated locally and pushed to AWS. Folders such as front-end/build and target will be cleaned before the build.

If you already built the artifact and want to deploy it to multiples environment, you can use append --no-build to skip the build.

RDS on AWS

By default, the application uses an in-memory database. If you want to persist the data, you first need to add an RDS (or any other similar service).

The database url is set in application-ENV.properties. The database credentials properties are defined in application-ENV.properties also but the values are from environment variables.

In the elasticbeanstalk environment configuration, you need to set database credentials and also SPRING_PROFILES_ACTIVE, in order to use the config file.

Frontend formatting with VS Code

To format the project and the files acording to the agreed convention, you'll need to download prettier extention. Follow this guide to do it https://github.com/prettier/prettier-vscode#installation, after the extention is downloaded, you'll have to manually save the files to trigger the format cmd+S

OAuth Client ID

The client ID for oauth is located at two different locations:

  • application.properties
  • App.js - GoogleLogin component

mementor's People

Contributors

aclaudel avatar etiennemustow avatar hyperhook avatar josewenzel avatar riccardo-toni avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mementor's Issues

Audit Trail

Add events for all actions, record in db. Add a way to view the list of audits to the front-end

API calls remove the term from the search bar

When you do an action, eg remove or add a mentor, while the list is filtered by the search term, it rerenders the entire page and removes the search term.

It should maintain the search filtering as to still display the craftsperson that the action was just done on.

Maintain session

When the user refreshes the page, they have to login. Maybe with cookies, maintain the session, maybe until the token expires?

Logging

The app should log events to an audit trail, as well as output logs for Elastic Beanstalk

Reverse sorting

When you click on the sorting buttons a second time, it should reverse the sorting

Split up craftspeopleController

We have all our api methods in one controller, and all our controller tests in one file. Split up the controller so we can split up the tests, into Mentor, Mentee, Craftspeople, Admin

Filter craftspeople by location

We should be able to filter the list of craftspeople by which office they are in: London/Barcelona
maybe manchester as well

Role Based Access Control

RBAC would be nice to allow all codurance employees to use the site, but restrict editing of data to an admin

fix broken layout

The clear mentor icon and the alert icon appear below their intended sibling, the elements should be side to side.

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.