A full-stack application for managing homework assignments, built with modern web technologies. The project consists of a React frontend and a Node.js backend with Prisma ORM.
.
├── client/ # React frontend application
├── server/ # Node.js backend application
├── package.json # Root package.json
└── LICENSE # Project license
- Full-stack homework management system
- User authentication and authorization
- Discord integration
- Modern responsive UI
- RESTful API
- Database management with Prisma
- Automated testing
- React 19
- Vite
- Bootstrap 5
- React Router DOM
- Axios
- Node.js
- Express
- Prisma ORM
- JWT Authentication
- Discord.js
- Node-cron
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL database
- Discord Bot Token (for Discord integration)
- Clone the repository:
git clone <repository-url>
cd prw-homework
- Install dependencies for both client and server:
# Install root dependencies
npm install
# Install client dependencies
cd client
npm install
# Install server dependencies
cd ../server
npm install
-
Set up environment variables:
- Copy
.env.example
to.env
in the server directory - Fill in the required environment variables
- Copy
-
Set up the database:
cd server
npx prisma migrate dev
npx prisma db seed
- Start the development servers:
In one terminal (server):
cd server
npm run dev
In another terminal (client):
cd client
npm run dev
The application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
npm install
- Install all dependencies
npm run dev
- Start development servernpm run build
- Create production buildnpm run preview
- Preview production buildnpm run lint
- Run ESLint
npm run dev
- Start development servernpm test
- Run testsnpx prisma migrate dev
- Run database migrationsnpx prisma db seed
- Seed the database
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the terms specified in the LICENSE file.
- Your Name - Initial work
- CPNV - Project requirements and guidance
- All contributors who have helped with the project