GithubHelp home page GithubHelp logo

jackytsheng / campus-frontend Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rmr101/campus-frontend

0.0 1.0 0.0 9.63 MB

๐Ÿงณ Third project from Jiangren. Frontend

Home Page: https://rmr101.github.io/campus-frontend/

HTML 2.08% CSS 11.57% JavaScript 86.21% Dockerfile 0.14%

campus-frontend's Introduction

Build Status

๐Ÿ† Awarded 2nd Place in JR ACADEMY Full-stack Bootcamp 10th Commercial Project Competition.

Website link

Content

About JR Academy Projects 3 - Campus system 1.0

This is project three from JR Academy. We are team RMR101. Objective of the project is to deliver a learning management system for an educational purpose.

Tech stack for frontend summary:

Websites & UI:

  • React
  • Sass (module)
  • React-redux
  • React-router
  • Axios

Testing & Type Checking:

  • Jest & Jest-dom
  • Testing library
  • PropTypes library

Static Code Analysis:

  • ESLint
  • Prettier

Security:

  • Jwt

Clouds:

  • AWS S3 & Presigned URL
  • AWS SDK

CI/CD:

  • Travis CI
  • Github page
  • Docker

Development:

  • Agile (Scrumn)
  • Github flow

Miscellaneous:

  • Particle.js

For website, Visited here. However, you do need to run the backend for this website in order to interact with it. Quick guide to set up backend of this project.

How to interact with the client site

All following options REQUIRE a set up of backend at localhost:8080

Set up Backend and docker container for MySql image. Quick guide to set up backend of this project.

For Normal Interaction

This website is hosted at github page, all you need is to log in as admin account.

ADMIN account:

Username: admin

Password: admin

Then you can kick off from there.

For student and teacher account, initial password is the same as the user ID.

eg:

Username: S29036164

Password: S29036164

With Docker

  1. Navigate to the file where you want to test this application, then on your terminal run git clone https://github.com/rmr101/campus-frontend.git
  2. Change directory into cd campus-frontend.
  3. Under to the root directory run docker-compose up -d --build.
  4. Then visit https://localhost:3010 on your browser.

Without Docker

  1. Navigate to the file where you want to test this application, then on your terminal run git clone https://github.com/rmr101/campus-frontend.git
  2. Change directory into cd campus-frontend.
  3. run npm install or yarn install
  4. npm start or yarn start , make sure you have set up the back end for this project.
  5. This project also implement Redux Dev Tool extension on chrome. If haven't installed them please check here.

Using Docker hub

  1. Pull the image from docker hub using the following command :
$ docker pull jackytsheng/campus-frontend
$ docker run --rm -it -d --name campus-frontend -p 3010:80/tcp jackytsheng/campus-frontend

visit docker hub repo.

  1. Then visit https://localhost:3010 on your browser.

UI Design

Energetic Login Page

find

Avatar Profile

find

Role Specific Panels

find

Responsive

find

Supported Features

Assignment System

Publish Assignment

find

Student can view the newest assignment, for every enrolled course

find

Upon completion, student can upload their response. File is stored in AWS S3

For more technical detail about how to upload using file to AWS S3 using presigned url, checkout Jacky's article here.

  • Support file type: .pdf
  • File size limit : Less than 15 MB.

Note: student can re-upload assignment until due date has passed.

find

After submission, teacher can download student response

find

After reviewing, teacher can leave a report.

find

After marking, student can view result

Note: student is not allowed to view assignment again after teacher has marked it, for academic confidentiality.

find

User Management

CRUD Operation As Admin

Creating new user

Note: login in as admin, create student/teacher at dashboard.

find

Upon successful creation you will receive email notification.

find

Check for successful creation

Note: Search bar supports fuzzy searching

find

Edit page for user profile

find

Note: Currently admin can:

  1. Reset user password
  2. Deactivated a user

Upon deactivation, user can no longer login, and will not appear in any search result.

find

Subject Creation

Create new subject As Admin

Note: login in as admin, create subject at dashboard.

  1. Only accept 3 letter alphabet for subject code (regex implemented).
  2. Course code is made out of 3 letter alphabet and 8 numbers.

find

Upon creation subject will appears in course market subject list.

find

Course Management

Create new course As Admin

Note: login in as admin, create course under any selected subject. Teacher must be assigned.

find

Assigning teacher to a course

Once click, a pop up shows up.

Note: debounce associative-word searching is supported

find

Before confirming, teacher can still be re-assigned. But once post, teacher can't be reassigned for this course at this semester.

find

Find the course

Two ways that an admin can find a course:

  1. Through global searching.
  2. Through Navigating to the subject that has this course.

find

Edit Course Detail

Under course detail page, admin has the authority to change course content (excpet: year, semester, teacher)

find

Student Course Enrolment

find

Upon enrollment, student can find it at the Nav bar.

find

Changing Password

Any user (except administration account) can change their password at the profile page.

find

Upon successfully changing password you will receive email notification.

find

About Redux Dev Tool

This project have used redux dev tool.

If you haven't already installed it for your browser, you could do so at this link

Future Improvement

Technology

  1. Implement Router for component navigation
  2. Implement TS, or better managed with PropTypes, for maintainability
  3. Use Style Component / System for better readability and maintainability
  4. Deploy App on EC2 as docker image
  5. Improve UX by caching necessary formation
  6. Improve unit test coverage

Feature

  1. Support multiple teachers teaching
  2. Support payment system
  3. Support file sharing for all courses
  4. Make changing password after first login mandatory

campus-frontend's People

Contributors

jackytsheng avatar richardxugit avatar c2f2020b avatar dependabot[bot] avatar

Watchers

James Cloos avatar

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.