This project is a full-stack web application for managing assignment submissions and reviews. It is built using React for the front end, Spring Boot for the back end, and MySQL for the database.
- Features
- Architecture
- Prerequisites
- Installation
- Running the Application
- Configuration
- Usage
- Contributing
- License
- User registration and authentication
- Create, view, and manage assignments
- Submit assignments with GitHub repository and URL link
- Review and grade assignments
- User roles: Students and Instructors
- Frontend: React, Axios, Bootstrap
- Backend: Spring Boot, Spring Security, Spring Data JPA
- Database: MySQL
- Node.js (v12 or higher)
- npm (v6 or higher)
- Java Development Kit (JDK) 11 or higher
- Maven
- MySQL
-
Clone the repository:
git clone https://github.com/your-username/assignment-submission-app.git cd assignment-submission-app/backend
-
Configure the MySQL database: Create a MySQL database named
assignment_submission_db
and update the database configuration insrc/main/resources/application.properties
:spring.datasource.url=jdbc:mysql://localhost:3306/assignment_submission_db spring.datasource.username=root spring.datasource.password=yourpassword spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
-
Build and run the backend:
mvn clean install mvn spring-boot:run
-
Navigate to the frontend directory:
cd ../frontend
-
Install the dependencies:
npm install
-
Start the frontend development server:
npm start
The React application will run on http://localhost:3000
and the Spring Boot backend will run on http://localhost:8081
.
Ensure both the frontend and backend servers are running. Open a web browser and go to http://localhost:3000
to use the application.
The backend configurations are primarily located in the application.properties
file. You can adjust the database connection settings, server port, and other Spring Boot configurations as needed.
For API calls, the frontend uses Axios. The base URL for the API is set in the service files. Ensure the URLs match your backend endpoints.
- Register an account: Sign up as a new user.
- Login: Log in with your credentials.
- Role-based access:
- Students can view and submit assignments.
- Instructors can create, review, and grade assignments.
- Submit an assignment: When submitting an assignment, students need to provide:
- The GitHub repository link
- A URL link (if applicable)
When submitting an assignment, a student should provide:
- GitHub Repository URL:
https://github.com/username/repository
- Project URL:
http://example.com/project
Contributions are welcome! Please fork this repository and submit pull requests with meaningful changes. Ensure your code follows the project's coding standards and is well-documented.
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a pull request