Skip to content

TSOlami/namssn-website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

829 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


NAMSSN-WEBSITE

Welcome to the NAMSSN Website Repository! We're thrilled to have you here. This repository is dedicated to our department website for the Federal University of Technology Minna.

About NAMSSN Website

The NAMSSN website is designed to empower knowledge and community engagement. Whether you're a student, an admin, or simply curious about our platform, we've got you covered. Explore the essential features, sign up, access learning resources, make secure payments, and much more.

Video Tour

For a quick visual tour of our platform, be sure to check out our video tour.

Get Involved

We encourage you to get involved with our project. If you have ideas, suggestions, or would like to contribute, please don't hesitate to reach out. We're always looking for ways to improve and grow.

Stay connected with us, and subscribe for more updates. Thank you for visiting the NAMSSN Website Repository!

Explore the Tech Stack

Frontend:

JavaScript
TailwindCSS
HTML5
React
Redux
Vite
SVG

Backend:

MongoDB
Express
JSON

Other Tools:

Markdown
ESLint

git-last-commit GitHub commit activity


📖 Table of Contents


📍 Overview

Welcome to our departmental university website, where you'll find a centralized platform dedicated to providing students and departmental admins with a seamless and efficient experience. Explore a range of features and functionalities tailored to your needs.


📦 Features

Discover the key features that empower our platform:

  • User Authentication: Securely log in and manage your user profile. Our role-based access control ensures a personalized experience for both students and departmental admins.

  • Admin Dashboard: Departmental admins can efficiently post and manage department-specific announcements, user accounts, and other department-related content.

  • Payment Integration: Handle department dues and other department-related payments with a seamless and secure payment gateway. Keep track of your payment history and receive payment confirmations.

  • Responsive Design: Enjoy a responsive design that adapts to various devices and screen sizes, enhancing your user experience on the go.

  • Announcement Management: Stay informed with departmental announcements categorized by date and department. Receive notifications for new updates.

  • Learning Resources: Access a repository of departmental course materials, resources, and documents by level. Categorize and manage resources efficiently.

  • E-Test (Past Questions & Practice): Take timed past-question tests by course, get instant scores, and review answers with explanations—all tailored to FUTMINNA courses.

  • User-Admin Communication: Foster communication between students and departmental admins through messaging, appointment scheduling, and discussion forums.

  • Security and Compliance: Rest easy knowing that our platform is secure, compliant with data protection regulations, and equipped with backup and disaster recovery procedures.

📂 Repository Structure

└── namssn-website/
    ├── .gitignore
    ├── README.md
    ├── backend/
    │   ├── README.md
    │   ├── config/
    │   ├── controllers/
    │   ├── middleware/
    │   ├── models/
    │   ├── routes/
    │   ├── server.js
    │   └── utils/
    ├── frontend/
    │   ├── .eslintrc.cjs
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package-lock.json
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── public/
    │   ├── src/
    │   ├── tailwind.config.js
    │   └── vite.config.js
    ├── package-lock.json
    └── package.json

⚙️ Modules

Backend
File Summary
server.js The main server file responsible for handling HTTP requests and responses.
Routes
File Summary
adminRoutes.js Defines routes and handlers for administrative functions.
userRoutes.js Contains routes and controllers for user-related operations.
Config
File Summary
db.js Handles database configuration and connections.
Controllers
File Summary
userController.js Contains controller functions for user-related actions.
adminController.js Includes controller methods for administrative operations.
Utils
File Summary
generateToken.js Provides utility functions for generating authentication tokens.
paymentback.js Utility functions related to payment processing.
Middleware
File Summary
authMiddleware.js Middleware for handling user authentication and authorization.
errormiddleware.js Middleware for handling and formatting errors in the application.
Models
File Summary
blogModel.js Defines the model for blog posts.
userModel.js Defines the model for user data.
sessionModel.js Models user sessions for authentication.
postModel.js Represents the model for posts in the application.
resourceModel.js Defines the model for resources.
categoryModel.js Defines the model for categories.
paymentModel.js Represents the model for payment-related data.
Models
File Summary
blogModel.js Defines the model for blog posts.
userModel.js Defines the model for user data.
sessionModel.js Models user sessions for authentication.
postModel.js Represents the model for posts in the application.
resourceModel.js Defines the model for resources.
categoryModel.js Defines the model for categories.
paymentModel.js Represents the model for payment-related data.
Frontend
File Summary
.eslintrc.cjs Contains ESLint configuration for the frontend.
vite.config.js Configuration file for Vite, the build tool.
tailwind.config.js Tailwind CSS configuration for the frontend.
postcss.config.js PostCSS configuration for the frontend.
index.html HTML file for the frontend's entry point.
Src
File Summary
App.jsx Main component that represents the application.
index.css CSS file for the frontend.
main.jsx Main entry point for the frontend.
store.js Redux store configuration for state management.
data.js Data source or API endpoints for the frontend.
Slices
File Summary
usersApiSlice.js Redux slice for managing user-related data.
authSlice.js Redux slice for handling authentication.
apiSlice.js Redux slice for managing API-related data.
Sections
File Summary
Hero.jsx Component representing the hero section.
ContactUs.jsx Component for the contact us section.
index.js Index file for sections.
FAQs.jsx Component for frequently asked questions.
Features.jsx Component for displaying features.
AboutUs.jsx Component representing the About Us section.
Components
File Summary
FormErrors.jsx Component for displaying form errors.
Event.jsx Component for displaying events.
PageBox.jsx Component for a page box.
HeaderComponent.jsx Component representing the header.
Team.jsx Component for displaying the team.
ImageCard.jsx Component for displaying image cards.
FeatureCard.jsx Component for displaying feature cards.
Notification.jsx Component for displaying notifications.
index.js Index file for components.
Payment.jsx Component for handling payments.
InputField.jsx Component for input fields.
Actions.jsx Component for actions.
AnnouncementContainer.jsx Component for managing announcements.
Announcement.jsx Component for individual announcements.
AdminCard.jsx Component for administrative cards.
Button.jsx Component for buttons.
Post.jsx Component for displaying posts.
Forms
File Summary
ContactForm.jsx Component for the contact form.
SignInForm.jsx Component for the sign-in form.
SignUpForm.jsx Component for the sign-up form.
Nav
File Summary
Footer.jsx Component for the footer.
BottomNav.jsx Component for the bottom navigation bar.
Sidebar.jsx Component for the sidebar navigation.
NavBar.jsx Component for the navigation bar.
Pages
File Summary
Resources.jsx Component for the Resources page.
BlogPage.jsx Component for the Blog page.
AnnouncementMobile.jsx Component for mobile announcement display.
index.js Index file for pages.
PaymentPage.jsx Component for the Payment page.
Signup.jsx Component for the Signup page.
Home.jsx Component for the Home page.
Signin.jsx Component for the Signin page.
Profile.jsx Component for the Profile page.
EventsPage.jsx Component for the Events page.
AdminDashboard.jsx Component for the Admin Dashboard page.
ErrorPage.jsx Component for displaying error messages.
AboutUsPage.jsx Component for the About Us page.
DepartmentalFees.jsx Component for displaying departmental fees.
Landing.jsx Component for the Landing page.
NotificationPage.jsx Component for the Notification page.
Constants
File Summary
index.js Contains constants used throughout the application.
---

🚀 Getting Started

Dependencies

Please ensure you have the following dependencies installed on your system:

- ℹ️ Node.js

🔧 Installation

  1. Clone the namssn-website repository:
git clone https://github.com/TSOlami/namssn-website
  1. Change to the project directory:
cd namssn-website
  1. Install the dependencies:
npm install

🤖 Running namssn-website

npm run dev

🧪 Tests

npm test

🛣 Roadmap

  • ℹ️ Task 1: Implement User Authentication
  • Create user registration and login functionality for students and departmental admins.
  • Authenticate users securely with password hashing.
  • Implement role-based access control for students and departmental admins.
  • Implement a database schema that can handle multiple types of data (e.g., student, departmental admin).
  • Enable users to reset their passwords.
  • ℹ️ Task 2: Develop User Profile Page
  • Create user profile pages for students and departmental admins.
  • Allow users to update their profile information.
  • Display user-specific data and settings.
  • ℹ️ Task 3: Create Admin Dashboard
  • Develop an admin dashboard for departmental admins to manage department-specific content.
  • Enable departmental admins to post and manage departmental announcements.
  • Implement user management features for departmental admins.
  • ℹ️ Task 4: Add Payment Integration
  • Integrate a secure payment gateway for handling department dues and other department-related payments.
  • Implement payment history tracking for students.
  • Send Payments receipts to users uopn successful transaction.
  • ℹ️ Task 5: Enhance General App Responsiveness
  • Optimize the website layout for various screen sizes, including mobile devices.
  • Ensure responsive design for different devices and screen resolutions.
  • Enhance the overall user experience by making the app responsive.
  • ℹ️ Task 6: Enhance User Experience
  • Implement a user-friendly navigation menu.
  • Create a search feature for finding departmental resources.
  • Optimize website performance and loading times.
  • ℹ️ Task 7: Handle Announcements
  • Enable departmental admins to post announcements related to their department.
  • Notify students of new departmental announcements via email or notifications.
  • Organize announcements by date and department.
  • ℹ️ Task 8: Manage Learning Resources
  • Build a repository for uploading and accessing departmental course materials and resources.
  • Categorize resources by department, subject, and course.
  • Implement version control for document updates.
  • ℹ️ Task 9: Student-Departmental Admin Communication
  • Create a messaging system for students to communicate with departmental admins.
  • Allow for appointment scheduling and discussion forums.
  • Implement notifications for new messages and updates.
  • ℹ️ Task 10: Security and Compliance
  • Conduct security audits and vulnerability assessments.
  • Ensure compliance with data protection regulations.
  • Implement backup and disaster recovery procedures.
  • ℹ️ Task 11: Testing & Deployment
  • Perform unit testing on all components of the application.
  • Conduct integration testing to ensure all components work together.
  • Deploy the application to a production environment.

🤝 Contributing

Contributions are always welcome! Please follow these steps:

  1. Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
  2. Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
  3. Create a new branch with a descriptive name (e.g., new-feature-branch or bugfix-issue-123).
git checkout -b new-feature-branch
  1. Make changes to the project's codebase.
  2. Commit your changes to your local branch with a clear commit message that explains the changes you've made.
git commit -m 'Implemented new feature.'
  1. Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch
  1. Create a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary. The project maintainers will review your changes and provide feedback or merge them into the main branch.

📄 License

This project is licensed under the MIT License. See the LICENSE file for additional information.


👏 Acknowledgments

Contributors:

  1. Tijani Saheed Olalekan

  2. Abdulkareem Abdulquddus Olayinka

  3. Timilehin Olusa

  4. Ifedolapo Omoniyi

↑ Return


About

A social learning web application built for the student of the Federal University of Technology, Minna, using the MERN stack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages