11# STRbook - Student Transformation Record book
22
3- Web app to replace physical str book.
3+ A web application designed to replace the traditional physical student record book.
44
55## Key Features
66
7- ### For Students
8- - ** Authentication & Profile Management**
9- - Secure login/registration system
10- - Comprehensive profile management
11-
12- - ** MOOC Certificate Management**
13- - Upload and store MOOC certificates
14- - Track certification progress
15- - View certification history
16-
17- - ** Academic Portfolio**
18- - Track academic achievements
19- - Manage hobbies and extracurricular activities
20- - Progress visualization
21-
22- ### For Teachers
23- - ** Student Management**
24- - View student profiles and progress
25- - Evaluate MOOC certificates
26- - Provide feedback and scoring
27-
7+ - ** Student Portal:** Secure login, profile management, MOOC certificate uploads, academic/extracurricular tracking.
8+ - ** Teacher Dashboard:** View student profiles, evaluate certificates, provide feedback.
9+ - ** Admin Capabilities:** Manage users and system settings.
2810
2911## Technologies Used
3012
31- - ** Frontend**
13+ - ** Frontend: **
3214 - React.js
33- - Material-UI
34- - Firebase Integration
35-
36- - ** Backend**
15+ - Material-UI (@mui/material )
16+ - React Router (` react-router-dom ` )
17+ - Axios (for API requests)
18+ - Firebase (for Authentication/Storage)
19+ - ** Backend:**
3720 - Node.js
3821 - Express.js
39- - PostgreSQL
40- - JWT Authentication
22+ - PostgreSQL (` pg ` )
23+ - JWT (` jsonwebtoken ` for Authentication)
24+ - bcrypt (for Password Hashing)
25+ - CORS, Body Parser (Middleware)
4126
4227## Prerequisites
4328
@@ -56,57 +41,63 @@ Before you begin, ensure you have the following installed:
5641 ```
5742
58432 . ** Environment Configuration**
59- Create a ` .env ` file in the root directory:
60- ``` env
61- # Frontend Environment Variables
62- REACT_APP_API_URL=http://localhost:5000
63- REACT_APP_FIREBASE_API_KEY=your_firebase_api_key
64- REACT_APP_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
65-
66- # Backend Environment Variables
67- PORT=5000
68- DB_USER=postgres
69- DB_PASSWORD=your_password
70- DB_HOST=localhost
71- DB_PORT=5432
72- DB_NAME=str_book
73- JWT_SECRET=your_jwt_secret
74- ```
44+ Create a ` .env ` file in the root directory with your specific credentials (see example below).
7545
76463 . ** Install Dependencies**
7747 ``` bash
78- # Install frontend dependencies
48+ # Install frontend dependencies (in root directory)
7949 npm install
8050
8151 # Install backend dependencies
8252 cd backend
8353 npm install
54+ cd .. # Return to root directory
8455 ```
8556
86574 . ** Database Setup**
58+ Ensure your PostgreSQL server is running.
8759 ``` bash
88- # Create PostgreSQL database
60+ # Connect to PostgreSQL (replace 'postgres' if using a different user)
8961 psql -U postgres
62+
63+ # Create the database
9064 CREATE DATABASE str_book;
91-
92- # Run migrations
65+ \q
66+
67+ # Run migrations (from backend directory)
9368 cd backend
9469 node migrations/run-migrations.js
70+ cd .. # Return to root directory
9571 ```
9672
97735 . ** Start Development Servers**
9874 ``` bash
99- # Option 1: Start servers separately
100- # Start backend server (from backend directory)
101- npm run backend
102-
103- # Start frontend development server (from root directory)
104- npm start
105-
106- # Option 2: Start both servers concurrently
75+ # Start backend and frontend concurrently from the root directory
10776 npm run dev
10877 ```
10978
110796 . ** Access the Application**
11180 - Frontend: http://localhost:3000
11281 - Backend API: http://localhost:5000
82+
83+ ** Example ` .env ` file (root directory):**
84+
85+ ``` env
86+ # Frontend Environment Variables
87+ REACT_APP_API_URL=http://localhost:5000
88+ REACT_APP_FIREBASE_API_KEY=your_firebase_api_key
89+ REACT_APP_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
90+ # ... add other Firebase config variables as needed (projectId, storageBucket, etc.)
91+
92+ # Backend Environment Variables
93+ PORT=5000
94+ DB_USER=your_db_user # e.g., postgres
95+ DB_PASSWORD=your_db_password
96+ DB_HOST=localhost
97+ DB_PORT=5432
98+ DB_NAME=str_book
99+ JWT_SECRET=your_very_secret_and_strong_jwt_key
100+ ```
101+
102+ ---
103+ * Note: Remember to replace placeholder values in ` .env ` with your actual configuration.*
0 commit comments