NoteShareX is a web application designed to help students share and discover academic notes across various courses and subjects.
The application is deployed at https://notesharex-production.up.railway.app/
- Daiki Koike
CS5610 - Web Development Spring 2025
The objective of NoteShareX is to create a collaborative platform where students can share, discover, and upvote academic notes. The platform aims to improve study efficiency by centralizing high-quality study materials and fostering a community of knowledge sharing.
Home screen of the application
Browse notes page showing various academic notes
Detailed view of a specific note with content and actions
User profile page displaying user information and contributions
- User authentication system (register, login, logout)
- Create, read, update, and delete notes
- Browse notes by course and search by keywords
- Upvote system to highlight quality content
- Save favorite notes for quick access
- User profiles with activity tracking
- Responsive design for desktop and mobile
- Frontend: React 18.2.0, React Router 6.22.3, CSS
- Backend: Node.js, Express 4.21.2
- Database: MongoDB 6.14.2 (native driver)
- Authentication: JWT 9.0.2, HTTP-only cookies
- Tools: Vite 5.1.4, ESLint 8.57.0, Prettier
- AI Assistance: Claude Sonnet 3.7 (for documentation and code review)
- Node.js (v16+)
- MongoDB (v6+)
- Git
-
Clone the repository
git clone https://github.com/yourusername/notesharex.git cd notesharex -
Install dependencies for both frontend and backend
npm install -
Set up environment variables
- Create a
.envfile in the server directory based on the.env.exampletemplate - Update the MongoDB connection string and JWT secret
- Create a
-
Seed the database with sample data
npm run seed -
Start the development server
npm run devThis will run both frontend and backend servers concurrently
-
Build for production
npm run build -
Access the application
- Development: http://localhost:5173
- Backend API: http://localhost:5001/api
Test credentials:
- Username: admin
- Password: admin123
This project is licensed under the MIT License - see the LICENSE file for details. The MIT License is a permissive license that allows for reuse with few restrictions. It permits users to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software while providing attribution back to the original author.