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.
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.
For a quick visual tour of our platform, be sure to check out our video tour.
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!
- 📖 Table of Contents
- 📍 Overview
- 📦 Features
- 📂 Repository Structure
- ⚙️ Modules
- 🚀 Getting Started
- 🛣 Roadmap
- 🤝 Contributing
- 📄 License
- 👏 Acknowledgments
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.
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.
└── 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.jsonBackend
| 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. |
Dependencies
Please ensure you have the following dependencies installed on your system:
- ℹ️ Node.js
- Clone the namssn-website repository:
git clone https://github.com/TSOlami/namssn-website- Change to the project directory:
cd namssn-website- Install the dependencies:
npm installnpm run devnpm test
ℹ️ 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.
Contributions are always welcome! Please follow these steps:
- Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
- Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
- Create a new branch with a descriptive name (e.g.,
new-feature-branchorbugfix-issue-123).
git checkout -b new-feature-branch- Make changes to the project's codebase.
- 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.'- Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch- 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.
This project is licensed under the MIT License. See the LICENSE file for additional information.
Contributors:
-
Tijani Saheed Olalekan
-
Abdulkareem Abdulquddus Olayinka
-
Timilehin Olusa
-
Ifedolapo Omoniyi