English | Ξλληνικά
UniNotes is an online platform for sharing and managing notes for university students. It allows users to upload, search, and share academic notes organized by semester and course.
- .NET 9.0
- Blazor
- MongoDB
- HTML/CSS/JavaScript
- .NET 9.0 SDK
- MongoDB (locally or on a cloud service)
-
Clone the repository
git clone https://github.com/yourusername/UniNotes.git cd UniNotes -
Setup MongoDB
- Create an account on MongoDB Atlas or install MongoDB locally
- Create a new database for UniNotes
-
Configure AppSettings
- Create an
appsettings.jsonfile or renameappsettings.template.jsontoappsettings.jsonin the main project folder (UniNotes/) - Use the template below, replacing
<CONNECTION_STRING>with your MongoDB connection string and<WEBHOOK_URL>with your Discord Webhook URLs:
{ "ConnectionStrings": { "MongoDb": "<CONNECTION_STRING>" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "DiscordWebhook": { "ReportUrl": "<WEBHOOK_URL>", "SecretaryUrl": "<WEBHOOK_URL>" } }Note: Some versions of Visual Studio create this file automatically, but for users outside of Windows or on other IDEs, it is necessary to create it manually. This file is not included in the repository for security reasons.
- Create an
-
Install Dependencies and Run
dotnet restore dotnet run -
Access the Application
- Open your browser and navigate to
http://localhost:5073orhttps://localhost:7073
- Open your browser and navigate to
- Login.razor: User login page
- Register.razor: New user registration page
- Dashboard.razor: Main user dashboard after login
- Notes.razor: View and search notes from all users
- MyNotes.razor: Manage the user's personal notes
- Upload.razor: Page for uploading new notes
- Settings.razor: User profile settings
- Credits.razor: Information about the creators
- User registration and login
- User profile and settings management
- Different access levels (regular users, moderators, secretariat)
- Uploading notes in various formats (PDF, Word, images)
- Categorization by semester and course
- Search and filtering of notes
- Viewing notes with an embedded viewer
- Rating notes (future feature)
- Reporting problematic notes (future feature)
- Saving favorite notes (future feature)
- 1.1) If you go to /dashboard and refresh, you should stay logged in (whichever page you go to, if you refresh, it should throw you to the dashboard or landing)
- 1.2) We need to change the way we switch from page to page
- 1.3) On every page, there should be an option to go to all other pages
- 1.4) Back function on register and login
- 1.5) Translate the entire site to Greek
- 1.6) Create a README.MD
- 1.7) Make the view file work on every note
- 1.8) Make the "Notes Forum" scrollable for mobile devices
- 2.1) Add ratings to notes
- 2.2) Add a report bug function
- 2.3) Add a report note function
- 2.4) Add favorites for notes
- 2.5) Add view profile for each user and average rating from their notes
- 2.6) Add tags to notes
- 2.7) Add download function for notes
- 3.1) Check notes
- 3.3) Check courses
- 3.4) Update courses
- 4.1) Implementation of secretariat functions
- 4.2) User and permission management
UniNotes is being developed to offer a comprehensive solution for students to share and access quality notes. The main development challenges include:
- Ensuring data security and intellectual property rights
- Optimizing loading times for large files
- Implementing a user-friendly interface
- Effective management of the MongoDB database
- Implementation of different access levels and permissions
If you wish to contribute to the project, please follow the steps below:
- Fork the repository
- Create a new branch for the feature (
git checkout -b feature/amazing-feature) - Set up the development environment according to the installation instructions above
- Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Created with β€οΈ by students for students
