A simple CRUD (Create, Read, Update, Delete), full-stack web application to create, read, update, and delete student grades
| Dependency | Version |
|---|---|
| @Babel/Core | 7.8.7 |
| @Babel/Plugin-Transform-React-JSX | 7.8.3 |
| Babel-Loader | 8.0.6 |
| Bootstrap | 4.4.1 |
| CORS | 2.8.5 |
| Express | 4.17.1 |
| FontAwesome | 5.11.2 |
| PG | 7.18.2 |
| React | 16.13.0 |
| React-DOM | 16.13.0 |
| Webpack | 4.42.0 |
| Webpack-CLI | 3.3.11 |
Try the application live on my porftolio website
- * Teachers can view a list of recorded grades
- * Teachers can view the average grade for the class
- * Teachers can add a grade to the table
- * Teachers can delete a grade from the table
- * Teachers can edit the student name, course name, or student grade from the table
| Requirement | Version |
|---|---|
| Nginx | 1.10 or higher |
| Node | 10 or higher |
| NPM | 6 or higher |
| PM2 | 4 or higher |
| PostgreSQL | 10 or higher |
| Ubuntu Server | 18.04 LTS |
- Clone the repoistory
git clone https://github.com/Keith-Tachibana/Student_Grade_Table_Fullstack.git- Change directory to cloned folder
cd Student_Grade_Table_Fullstack/- Install all dependencies with NPM
npm install- Start PostgreSQL server
sudo service postgresql start- Create the database
createdb studentGradeTable- Import the schema
psql -d studentGradeTable -f schema.sql- Import the example data
psql -d studentGradeTable -f data.sql- Edit your nginx default site configuration to reverse proxy the Express.js server
cd /etc/nginx/sites-available
sudo nano default- 8a. In the "server" code block, add this underneath the first location definition:
location /api { proxy_pass http://127.0.0.1:3000; } - 8b. Save your changes (
Ctrl + O) and exit (Ctrl + X) - 8c. Link your default site to the sites-enabled directory (if not already done):
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
- Start nginx
sudo service nginx start- Transpile React components using Webpack
npm run build- Change directory to the server folder
cd server/- Start the Express.js server using the PM2 module
sudo pm2 --name "studentGradeTable" start index.js- Open your default web browser and navigate to http://localhost:3000/ to see the result!
